二进制
- 二进制是计算技术中广泛采用的一种数制。
- 它的基数是2,进位规则是“逢二进一”,借位规则是“借一当二“
- 在二进制中完全用0和1表示。
- 在计算机中,CPU是一个包含上亿个的晶体管,每个晶体管都只有两种表达方式:高电压和低电压。高电压表示1,低电压表示0。因此这就注定计算机采用二进制来做计算。
十进制转二进制
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |
---|---|---|---|---|---|---|---|---|
0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | |
67 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
231 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
- 如上表所示,67(十进制)转化为二进制数是什么呢?
- 首先,我们知道在二进制中,从右往左数:
- 第1位上如果是1,其余各位是0,则表示十进制中的1(2^0);
- 第2位上如果是1,其余各位是0,则表示十进制中的2(2^1);
- 第3位上如果是1,其余各位是0,则表示十进制中的4(2^2);
- 第4位上如果是1,其余各位是0,则表示十进制中的8(2^3);
- 第5位上如果是1,其余各位是0,则表示十进制中的16(2^4);
- 以此类推,.......
- 十进制的67,首先找到67比64大3,找到64所在二进制中的位置,在该位置出填1;
- 剩下的3,可以是2+1,多以找到二进制中2和1所在的位置,在相应位置填1;
- 其余位置补0,得到 (01000011)
- 231(十进制)转二进制:
- 231-128=103;103-64=39;39-32=7;7=4+2+1
- 所以:231=128+64+32+4+2+1
- 因此:在128/64/32/4/2/1对应的二进制位上填1,其余补0即可,得到(11100111)
- python中可使用bin()得到十进制的二进制表达
二进制转十进制
10101:
10101 = 1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 21
101011:
101011 = 1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 43