美文网首页
按位操作符

按位操作符

作者: 小小的白菜 | 来源:发表于2018-10-01 20:25 被阅读0次

按位操作符(Bitwise operators)将其操作数(operands)当作 32 位的比特序列(由 0 和 1 组成),而不是十进制、十六进制或八进制数值。例如,十进制数 9,用二进制表示则为 1001。按位操作符操作数字的二进制形式,但是返回值依然是标准的JavaScript数值。

MDN

补码

正整数的补码是其二进制表示,与原码相同。

+9 的补码是 00001001。这个 +9 的补码是用 8 位 2 进制来表示的,补码表示方式很多,还有16 位二进制补码表示形式,以及 32 位二进制补码表示形式, 64 位进制补码表示形式等。

求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加 1 。

同一个数字在不同的补码表示形式中是不同的。比如 -15 的补码,在 8 位二进制中是 11110001,然而在 16 位二进制补码表示中,就是 1111111111110001 。-5 对应正数 5(00000101)→所有位取反(11111010)→加 1(11111011)

左移运算符(<<)

将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补 0)。

例:a = a<< 2 将 a 的二进制位左移 2 位,右补0,

左移1位后a = a * 2;

若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以 2。

右移运算符(>>)

将一个数的各二进制位全部右移若干位,正数左补 0,负数左补 1,右边丢弃。

操作数每右移一位,相当于该数除以 2。

例如:a = a>> 2 将 a 的二进制位右移 2 位;

左补 0 or 补 1 得看被移数是正还是负。

相关文章

  • JavaScript高程读书笔记(2)

    五、操作符 算数操作符、位操作符、关系操作符、 相等操作符 一元操作符++和--:注意a+++,- 位操作符按位非...

  • js中小数取整的方法

    常用方法 “双按位非”操作 按位或 按位异或 左移操作符

  • 按位操作符

    按位操作符 按位操作符是将操作数当做32为的比特序列(0和1组成),按位操作符操作数字的二进制形式,但是返回值依然...

  • 按位操作符

    按位操作符(Bitwise operators)将其操作数(operands)当作 32 位的比特序列(由 0 和...

  • 按位操作符

    平时很少用到按位操作符,总是记不清楚,特此记录一下: 运算符用法描述按位与( AND)a & b对于每一个比特位,...

  • 位运算

    Java中的按位操作符有四个,分别是:&(按位与)、|(按位或)、^(按位异或)、~(按位非)。 1、先来看按位与...

  • Swift - 高级运算符介绍

    除了基本运算符之外,Swift还支持位运算和位移运算,包括:1、按位取反运算:操作符是 ~2、按位与运算:操作符是...

  • C高阶1:二进制操作

    1. 位运算 按位运算No.操作符功能1&按位与2|按位或3~按位取反4^按位异或 运算规则pqp & qp | ...

  • iOS:按位操作符

    进制表示法: 按位操作符 向左移位运算符 << :对值进行向左移动,超出数据项的高位将丢失,低位移入的值总为0,该...

  • JS按位操作符

    按位操作符(Bitwise operators) 将其操作数(operands)当作32位的比特序列(由0和1组成...

网友评论

      本文标题:按位操作符

      本文链接:https://www.haomeiwen.com/subject/axgnoftx.html