黑马程序员技术交流社区

标题: 学习中的一点总结———移位运算 [打印本页]

作者: dwy_hm    时间: 2014-12-16 22:13
标题: 学习中的一点总结———移位运算
移位运算有左移运算<<
右移运算>>

和无符号右移运算>>>
移位运算就是把二进制数据按每一位进行向左移或向右移动的运算
<<就是将数据所有二进制位向左位,运算时,右边的空位补0,左边移走的部分舍去。
>>就是将数据所有二进制位向右移位,运算时,左边的空位补0或1(正数补0,负数补1)
>>>就是将数据所有二进制位向右移位,运算时,左边的空位补0,不考虑正负。
值得注意的是:当移动的位数超过了该类型数据的最大位数,那么编译器会对移动的位数去模类型的最大位数,然后按照取模结果进行移位。
比如说:int a = 2    //整数2的二进制总共有32位
                 a<<33   //把2移动33位其实就是33%32=1,就是等同于 a<<1

作者: dwy_hm    时间: 2014-12-16 22:15
补充说明一下:无符号右移运算符>>>只对32位和64位的值有意义
作者: zzn2508    时间: 2014-12-16 22:24
感谢分享
作者: Bali    时间: 2014-12-16 22:28
分享有效!
作者: Android周    时间: 2014-12-16 23:45
感谢分享,赞




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2