A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dwy_hm 中级黑马   /  2014-12-16 22:13  /  1027 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

移位运算有左移运算<<
右移运算>>

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

4 个回复

倒序浏览
补充说明一下:无符号右移运算符>>>只对32位和64位的值有意义
回复 使用道具 举报
感谢分享
回复 使用道具 举报
分享有效!
回复 使用道具 举报
感谢分享,赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马