二进制

2019-03-20  本文已影响0人  椰果粒

什么是二进制
二进制以2为基数

计算机为什么使用二进制

二进制的位操作
位运算包括:左移右移异或

左移

左移

数字溢出:指二进制的位数超过了系统指定的位数,一般系统最少是32位

右移
JavaScript中,右移分为有符号右移无符号右移

右移

举一个有符号和无符号右移的例子

有符号与无符号右移

对应JavaScript代码

-123 >> 4 == -8 (有符号右移)
-123 >>> 4 === 268435448(无符号右移)

总结:
负数的无符号右移:取得补码,右移n位,最高位补0
负数的有符号右移:取得补码,右移n位,最高位补1,然后再取这个补码的补码
正数的有符号与无符号右移,结果都一样

与操作

都是1,结果才是1

与操作

或操作

只要有一个是1,就等于1

或操作

异或

只有符号位不同,才是1

异或

验证

parseInt("1001011",2) | parseInt("1010100",2) // 95   "1011111"
parseInt("1001011",2) & parseInt("1010100",2)  // 64 "1000000"
parseInt("1001011",2) ^ parseInt("1010100",2)  // 31  "11111"
上一篇下一篇

猜你喜欢

热点阅读