码迷,mamicode.com
首页 > 其他好文 > 详细

位操作符理解小技巧

时间:2018-06-01 21:34:38      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:info   常见   结果   理解   没有   十进制   小数   如何   技巧   

面试题中常见的一个题:

如何快速计算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 (二进制的原因,没有小数)

 

位操作符理解小技巧

标签:info   常见   结果   理解   没有   十进制   小数   如何   技巧   

原文地址:https://www.cnblogs.com/whwjava/p/9123461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!