《程序员的数学基础课-二进制,了解计算机的源头》学习笔记

2018-12-11  本文已影响63人  冰果2016

二进制,了解计算机的源头

WechatIMG43.jpeg

二进制的位操作:

向左移位

二进制左移一位,就是将数字翻倍

// javascript左移运算符<<
  53 << 1; // 106
  53 << 2; // 212
// javascript左移赋值运算符<<=
var temp = 53;
temp <<= 2; // temp = 212
向右位移

二进制右移一位就是将数字除以2并求整数商。右移位有两种表达方式>>,>>>。因为在javaScript,JAVA的二进制中最高位为符号位。当符号号为0时表示正数,当符号为1时表示负数。

算术右移(>>)

算数右移时保持符号位不变,除符号之外的右移一位并补0,补的0仍然在符号位之后。

// javascript右移位运算符>>
53 >> 1 // 26
212 >> 3 // 26
-53 >> // -27
-212 >> 3 // -27
// javascript右移赋值运算符<<=
var temp = 53;
temp >>= 2; // temp = 13
逻辑右移(>>>)

逻辑右移1位,左边补0即可。

// javascript无符号右移位运算符>>>
53 >>> 1 // 26
212 >>> 3 // 26
-53 >>> 1 // 2147483621
-212 >>> 3 // 536870885
// javascript无符号右移位赋值运算符>>>
var temp = 53;
temp >>>= 2; // temp = 13

位的"异或"

两个数值按位异或结果为0,是这两个数值相等的必要充分条件,可以作为判断两个变量是否相等的条件。


位的异或
上一篇 下一篇

猜你喜欢

热点阅读