位移运算符

2016-02-27  本文已影响73人  懵智的大仁哥

1.<< 左移
2.>>> 无符号右移
3.>> 有符号右移

先说说移位,是对一串二进制数进行移位。
分为左移以及右移,右移又分为有符号右移以及无符号右移,那么他们的区别又是什么呢?

演示一下:

左移
00001111====>00011110====>00111100====>01111000

有符号右移
00001111====>00000111====>00000011====>00000001
11110000====>11111000====>11111100====>11111110

无符号右移
00001111====>00000111====>00000011====>00000001
11110000====>01111000====>00111100====>00011110


区别:

1.左移/右移:在于二进制数移动的方向不同.
2.有符号/无符号:因移动而空出的符号位,是否按原来的符号位数字来补.

计算:

1.左移n位,相当于乘以2^n,溢出时会为零
2.右移,相当于除以2^n,不过负数要注意符号问题


举个例子:

定义一个byte类型的变量,值为-7,它在计算机中的存储为1111 1001.
左移一位: 1111 0010 = -14
左移两位: 1110 0100 = -28
有符号右移一位: 1111 1100 = -4
无符号右移一位: 0111 1100 = 124

上一篇 下一篇

猜你喜欢

热点阅读