位操作符理解小技巧
Posted whwjava
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位操作符理解小技巧相关的知识,希望对你有一定的参考价值。
面试题中常见的一个题:
如何快速计算2*8
答案是2<<3;
原理就是:
2的二进制是10,左移3位,变为10000,也就是十进制的16
其实任何数的的二进制左移一位都相当于乘以2,比方说5,二进制是101,5*2是多少呢?
5的二进制 101,每一位乘以2 结果 1010,也就是十进制的10
同理,右移1位就相当于除以2,掌握了这个技巧那类似的题就很好办了:
例如4/2,可以写作4>>1 = 2;
例如 17*2,可以写作 17<<1 = 34;
例如 5/2,可以写作 5>>1 = 2 (二进制的原因,没有小数)
以上是关于位操作符理解小技巧的主要内容,如果未能解决你的问题,请参考以下文章