java中的移位 一个面试题:用最有效率的方法计算2*8的结果?有人回答是用移位的方法效率最高,即将2移位三次,本人不懂其原理,请问结果是怎么得来的,原理是什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 2 = (10)2 2进制表示法2 << 3 表示 将2按2进制表示法向左移位3次10 -> 100 -> 1000 -> 10000 = 1 * 2^4 = 16 = 2 * 8一般的,向左移位1次表示将该数乘以2,移位3次就是乘以2乘以2乘以2 = 乘以8在计算机科学中,移位比起普通的逻辑运算效率更高,因为在硬件上容易实现(请谷歌度娘)事实上,有些编译器在处理运算时会使用移位对运算进行优化比如 遇到 *2 *4 *8 *2的幂时 会用左移位, /2 /4 /2的幂 用向右移位又比如 乘以 31 会变成 乘以(32 -1) e.g. 31 * a -> 32 * a - a -> a << 5 - a 求最大值,菜鸟,求教 浮点数范围的疑惑 a question about class 有些词的解释 如何用JAVA实现抽取随机数0到100,并能统计相应的概率 大家新年好!问几个关于IO方面的问题,谢谢指教! 100分求解一个奇怪的多线程和Exception的问题 gab第0篇 我的小铁锨(代序) 不用swing,如何手工代码生成工具条和菜单条? 各位刚工作的时候编程水平是什么程度? 这段代码的运行结果,求分析,谢谢了 接口不就是interface吗?怎么还要写一个接口啊
2 << 3 表示 将2按2进制表示法向左移位3次10 -> 100 -> 1000 -> 10000 = 1 * 2^4 = 16 = 2 * 8一般的,向左移位1次表示将该数乘以2,移位3次就是乘以2乘以2乘以2 = 乘以8在计算机科学中,移位比起普通的逻辑运算效率更高,因为在硬件上容易实现(请谷歌度娘)事实上,有些编译器在处理运算时会使用移位对运算进行优化比如 遇到 *2 *4 *8 *2的幂时 会用左移位, /2 /4 /2的幂 用向右移位又比如 乘以 31 会变成 乘以(32 -1) e.g. 31 * a -> 32 * a - a -> a << 5 - a