js 二进制与位运算
生活中,我们经常用到的是以十进制为单位,进位是满 10 进 1,而计算机是用二进制,那么就是满 2 进 1 喽,为什么采用二进制呢?简单说下,Ta的由来其实是根据电路的开关闭合,电路只有 0 和 1,具体的详情这里不多做解释了,可以自行百科^_^。javascript 采用有符号 32 位的 2 进制,可表示 4294967295 个整数(含正负),范围是 -2147483648(2 的 32 次方) ~ 2147483647。
带符号二进制基本规则与几个概念
在计算机中规定最高位是符号位,0 为正,1 为负。正数表示是原码,负数是原码的补码。
原码
除去符号位,其他 32 位都为正。
例:00000000000000000000000000001010 原码 00000000000000000000000000001010。
反码
所谓反码,除符号位外,其他位 0 变 1,1 变 0。 例:1010 反码 1101
补码
所谓补码,就像是小学学过的 10 进制补数,举个例子就很好理解,3 的补数是多少?是 7。4 的补数是 6,补数就是 10 减去这个数。在二进制的补码就是相加等于 0,互为相反数。
- 0 的补码 0 的原码、反码、补码均为 0
- 正数的补码 原码
- 负数的补码 原码除符号位外的所有位取反+1。如何推出来的,看了一篇文章,挺有意思。点击查看