位运算怎么对一个十进制数去除个位
// 输入 12312312412341
// 返回 1231231241234
// 输入 99999999321
// 返回 9999999932
位运算怎么对一个十进制数去除个位
// 输入 12312312412341
// 返回 1231231241234
// 输入 99999999321
// 返回 9999999932
楼上的的函数用 js 写不怎么写不出来,但 url 中
unsigned divu10(unsigned n) {
unsigned q, r;
q = (n >> 1) + (n >> 2);
q = q + (q >> 4);
q = q + (q >> 8);
q = q + (q >> 16);
q = q >> 3;
r = n - (((q << 2) + q) << 1);
return q + (r > 9);
}
用 python 实现,可以
def divu10(n):
q = (n>>1)+(n>>2)
q=q+(q>>4)
q=q+(q>>8)
q=q+(q>>16)
q=q>>3
r = (n- ((n-(q<<2)+1) <<1))
return q + (r>9)
print(divu10(899))
https://stackoverflow.com/questions/5558492/divide-by-10-using-bit-shifts