黑马程序员技术交流社区
标题:
移位运算符
[打印本页]
作者:
zhengyang
时间:
2016-6-6 09:01
标题:
移位运算符
byte,short ,char 数据类型进行移位运算符操作的时候,是在byte占的一个字节8个比特位里面操作吗?
byte b = 5;
b << 8;
作者:
08期javaee-zmz
时间:
2016-6-6 09:06
超出范围了吧
作者:
车前子008
时间:
2016-6-6 09:11
按我的理解 b的二进制是00000101 向左移8位就超出范围了 101 0000 0000
作者:
zhengyang
时间:
2016-7-1 12:08
只要byte,short ,char 数据类型的数据参与运算,底层会自动先提升为int类型然后参与运算,运算后的结果都是int类型的,所有位移运算时在int的范围内移动,如果要重写赋值给byte,short ,char 数据类型的数据,那么就需要强制类型转换,可能会损失精度,(得到的结果不是你想要的认为的结果)
作者:
chenglong25
时间:
2016-7-1 12:42
会转换为int类型的数据进行运算,而int类型占四个字节32个比特位.如果超出31位(首位为符号位),就会出现错误.
作者:
tuijun101112
时间:
2016-7-1 19:58
会自动截取8位.超出范围的会被忽略的.
作者:
feng19900123
时间:
2016-7-1 23:34
最后得到的结果是0,因为有效数据位已经被移出去了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2