首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

从编译器除以2的幂说起

那就是除以2的幂。编译器会将除以 2^n 使用移位进行优化。 我们在编码时可以善于利用 2^n ,比如数组/队列的长度、取余、相除的除数等最好都使用 2^n 。说不定有意外的惊喜。...原码除以 2^n 当一个整数以原码表示时,除以2的幂也可以用移位运算来实现。 执行逻辑右移(前位补0)移位总是舍入到零的结果。...补码除以 2^n 同理,补码有类似的性质。但需要进行算术右移,也就是前位补1。...对其除以 2^3 。等同右移3位,得到结果为:-772。但结果变成了 向下舍入。 回到前面的原码场景,6170进行除以8的结果是 771。...例如计算 -8/2^2=-2 解: -8=b11000 2^2 - 1=b11 -8+2^2-1=b11011 算术右移2位: b11110 = -2 这说明,正好能除尽,也就没有向0舍入的问题。

18530

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券