其他分享
首页 > 其他分享> > `>>`(有符号右移) 和 `>>>`(无符号右移)的区别

`>>`(有符号右移) 和 `>>>`(无符号右移)的区别

作者:互联网

JavaScript >>(有符号右移) 和 >>>(无符号右移)的区别

之所以以 JS 为例,是因为Java中不支持无符号操作

直接看MDN英文吧:

>> (有符号右移)

在这里插入图片描述
sign-propagating(符号位-传播)右移 我们知道,计算机中以二进制存储数字,二进制中最左边的第一位,叫符号位,所以这就很明显了,右移2位后,最左边缺少2位数字,那就应该填充数字,那填充什么呢?符号位是什么,我就填什么,所以 -9 >> 2 中最左边2位和符号位一样,都是1。

>>> (无符号右移)

在这里插入图片描述
zero-fill(零-填充) 这个就更明显了,直接就说了,用0填充,所以右移后空位不管你符号位是啥,我都只填0。

总结

因此,我们所说的 有符号、无符号 看的就是二进制的符号位

标签:右移,Java,填充,区别,二进制,位是,符号
来源: https://blog.csdn.net/sinat_42483341/article/details/113483631