`
xf562339820
  • 浏览: 12740 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

轻轻松松了解移位运算符的算法

    博客分类:
  • java
阅读更多

以前在面试的时候遇到过移位运算的相关知识,当时对它没有任何的了解,所以...... 后来在网上查过一些资料、也翻阅过一些书籍、也问过老师和同学,他们都是长篇大论(洋洋万言)听得糊里糊涂。以下是我的一些总结,不知正确与否,希望高手多多指教!!

 *****左移位运算符*****

 将一个数左移1位,相当于将该数乘以2;

左移2位相当于将该数乘以4,即左边数乘以2的右边数幂的积

 eg. 9<<3 的结果是:72 相当于9*2*2*2

 

*****右移位运算符*****(两边都是正数)

将一个数带符号右移1位,相当于将该数除以2(忽略余数);

带符号右移2位,相当于将该数除以4,即左边数除以2的右边数幂的商

 eg. 9>>1 的结果是:4 相当于9/2(忽略余数)

 

当左边的数字小于右边的数时,结果为0(两边都是正数)

 当左边的数小于0时,结果为:左边数的绝对值除以2的右边数幂的商的相反数-1

eg. -9>>2的结果是:-3 相当于-(9/(2*2))-1

当左边的数小于0时,且它的绝对值比右边的数还小时,结果为-1

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics