文章导航

JavaScript >>> 三个大于号无符号右移运算符

2018-12-26 00:19| 作者: admin| 查看: 1132| 评论: 0|来自: 蚂蚁部落

>>>运算符由三个大于号构成,是一个二进制运算符。

也就是对二进制数字进行操作,具有两大特点:

(1).首先,是无符号。

(2).其次,是右移。

二进制正负数表示法与十进制不同,十进制前面使用正负号表示(正号可以省略)。

二进制数字的最高位是符号位,正数的最高位是0,负数的最高位是1。

下面将结合代码实例分析一下此运算符的主要特点。

以如下二进制数字为例子进行演示:

[JavaScript] 纯文本查看 复制代码
00000000000000000000000011111111

上面是32位二进制数字,转换成十进制是255。

所谓的右移是将二进制数字整体向右平移,但是位数保持不变。

也就是向右移动一位,那么右边的数字就会被切割掉一位,在左边再补充一位。

假如向右移动六位,上述二进制数字变为:

[JavaScript] 纯文本查看 复制代码
00000000000000000000000000000011

原来二进制数字的右边的六个1将被切掉,左边会补充6个0。

所谓的无符号,就是无论被右移的数字是正数还是负数,右移后,左边空出来的位用0填充。

与有符号右移运算符不同,具体参阅JavaScript 有符号右移运算符一章节。

代码实例如下:

[JavaScript] 纯文本查看 复制代码运行代码
let view32 = new Int32Array(1);
view32[0] = 255;
  
let newNum=view32[0]>>>6;
console.log(newNum);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201812/26/002103b8hq2cz22qd21hum.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码分析如下:

(1).首先创建一个32位二进制数组,也就是每一个数组元素都是32位二进制数字。

(2).将第一个数组元素赋值为255,当然存储的是二进制形式。

(3).然后将第一个数组元素的二进制数组右移6位,变成00000000000000000000000000000011。

(4).最后打印出结果3。

再来看一段代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
let view32 = new Int32Array(1);
view32[0] = -50;
  
var newNum=view32[0]>>>6;
console.log(newNum);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201812/26/003122ht4deycet8gp7ycj.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码分析如下:

(1).创建一个有符号32位二进制数组。

(2).数组的第一个元素是负数。

(3).但是通过无符号右移运算符计算之后,数字变为正数。

(4).由此可见,此运算符无论对于负数还是正数,左侧只会进行补零操作。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部