位移运算符

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容