数字电路/二进制系统
十进制 | 二进制 | 八进制 (基数 8) |
十六进制 (基数 16) |
---|---|---|---|
00 | 0000 | 00 | 0 |
01 | 0001 | 01 | 1 |
02 | 0010 | 02 | 2 |
03 | 0011 | 03 | 3 |
04 | 0100 | 04 | 4 |
05 | 0101 | 05 | 5 |
06 | 0110 | 06 | 6 |
07 | 0111 | 07 | 7 |
08 | 1000 | 10 | 8 |
09 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
为了将十进制数转换为二进制数,您必须以 2 的幂而不是 10 的幂来思考。
幂表示 | 24 | 23 | 22 | 21 | 20 |
---|---|---|---|---|---|
权重 | 16 | 8 | 4 | 2 | 1 |
1111 = 15 是
幂表示 | 24 | 23 | 22 | 21 | 20 |
---|---|---|---|---|---|
权重 | 16 | 8 | 4 | 2 | 1 |
十进制值“15” | 0 | 1 | 1 | 1 | 1 |
23 + 22 + 21 + 20 = 8+4+2+1 = 15.
用二进制表示 31 = 11111 是
24 + 15,如上所述。
请记住,最低有效位(传统上是最右边的)数字是 20,等于 1。
根据角色
二进制是数字电路的固有数字系统,但对于人类来说,长串的 1 和 0 并不容易读写。因此,人们开发了易于与二进制进行转换的数字系统,包括八进制和十六进制。
八进制数字系统是基数 8,与我们的本机数字系统(十进制)是基数 10 相比。在基数 8 中,仅使用 0 到 7 的数字。每个八进制数字可以用三个二进制位表示,如上转换表(在二进制数字下)所示。
八进制和二进制之间的转换很简单。要从八进制转换为二进制,将每个八进制数字转换为其三位等效值,反之亦然。
类似地,十六进制数字系统(基数 16)便于与二进制进行转换。每个十六进制数字正好表示四个二进制位,如上表所示。
请注意,在十六进制中,字母 A 到 F 用于分别表示 10 到 15 的十进制等效值。
长串的位可以使用八进制和十六进制以更紧凑的方式表示。在这两者中,十六进制更常用。由于每个十六进制数字代表四个位,因此十六进制非常适合表示现代系统中可能出现的数值(16、32 或 64 位)。十六进制值通常以“0x”表示 - 例如,0xFF 是 255 的十六进制等效值。
一补码是通过取给定数字(用二进制表示),然后“翻转”每个位来计算的,这样原始数字中的每个 0 现在在一位补码中表示为 1,原始数字中的每个 1 在一位补码中表示为 0。二进制数与其一补码的逻辑与全为 0。二进制数与其一补码的逻辑或全为 1。
二补码是通过取二进制值的位补码,然后加 1 来形成的。二补码用于表示有符号整数。一个数字的负数表示为原始数字的二补码。减法可以通过将值的负数(二补码)添加到另一个值来执行。N 位可以表示的最小整数是 -2N-1,而最大数字是 2N-1-1。
AB78(十六进制)= 1010 1011 0111 1000(二进制)0xAB78 的一位补码是 0101 0100 1000 0111。0xAB78 的二补码是 0101 0100 1000 1000。
1F1F(十六进制)= 0001 1111 0001 1111(二进制)0x1F1F 的一位补码是 1110 0000 1110 0000。0x1F1F 的二补码是 1110 0000 1110 0001。