位运算怎么对一个十进制数去除个位?

位运算怎么对一个十进制数去除个位

// 输入 12312312412341
// 返回 1231231241234

// 输入 99999999321
// 返回 9999999932
阅读 1.8k
2 个回答

楼上的的函数用 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))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进