继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

位移详解

青春有我
关注TA
已关注
手记 1199
粉丝 205
获赞 1008

位移运算符:<<、>>、>>>

(1) (int) 144 << 3

  • int:4个字节(一个字节8位),so:32位

  • <<左移运算符

  • 144的二进制左移3位,前面(高位)去000(3个0),后面(低位)补000(3个0)。低位补0
    10010000    ->    10010000000
    结果:1152

注意点:
如果移动的位数超过了该类型的最大位数,编译器会对移动的位数取模移动。如果是int类型移动35位,实际只移动了35%32=3位。

(2) (int)144 >> 3


  1. ">>"  右移运算符


  1. 144的二进制右移3位,后面(低位)去000(3个0),前面(高位)补000(3个0)。高位补0

10010000    ->    10010
结果:18

  • 另一种理解:

    • 相当于num除以2的n次方

    • 相当于num乘以2的n次方

    • 左移运算符:num << n

    • 左移运算符:num >> n

(3) (int)144 >>> 3



作者:Jason_Coding
链接:https://www.jianshu.com/p/3b109b29ab8f


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP