黑马程序员技术交流社区

标题: 按位运算有个小疑问,太粗浅到百度都没有看到 [打印本页]

作者: 坚持努力wbj    时间: 2016-8-29 09:37
标题: 按位运算有个小疑问,太粗浅到百度都没有看到
按位运算中的按位左移说高位舍弃,低位补零,我想知道这里高位与低位指的哪些位,不要告诉我左边的比右边的低,这个我知道的,我想知道的是是否有具体的哪几位,或者说按位运算的数是否长度在运算时时固定了,例如不管你输入的是1还是123456789,按位运算时的二进制位长度都是是一样的
另外,感觉自己缺少某块知识,由于经验不足,学习时间短,不在到需要补充哪一块,求指导
作者: abcdefg11    时间: 2016-8-30 22:48
比如
byte a=1;//1字节
short b=2;//2字节
int c=3;//4字节
long 和浮点就不说了
二进制这么表示的:
a:
00000001
b:
00000000 00000010
c:
00000000 00000000 00000000 00000011
高位就是最左边,低位就是最右边

java中运算时低于int4字节的数字自动提升为int类型进行运算
比如a+b,a就会变成 000000000000000000000001 +
                               000000000000000000000010
这叫隐式转换

回归正题
a<<2(左移2位)就变成
00000100
转换成十进制为4,

b>>1,高位补0,
00000000 00000001
就变成1




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