计算机基础-进制转换

计算机只识别二进制,何为二进制?我们为什么生活中只用十进制?还有十六进制?如何计算,相互转换?

什么是二进制

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。

附言:同样的,8进制就是“逢8进1”;十六进制就是“逢16进1”

如何计算呢

十进制转换为二进制

计算机基础-进制转换_01

由上图计算方式,得出的余数倒过来,就是该数字对应的二进制:

十进制 二进制
14 1110
18 10010
8 1000
12 1100

十进制转换为八进制

计算机基础-进制转换_01

由上图计算方式,得出的余数倒过来,就是该数字对应的八进制:

十进制 八进制
16 20
127 177
188 274
32 40

二进制和八进制如何转换回十进制呢?

二进制转换成十进制

按照二进制,索引从后往前,每一位数字与乘以2的当前索引次方(当前数字 * 2^索引),然后相加得出的和就是该二进制数字的十进制
1110(二进制)-> ?(十进制)
(1 * 2 ** 3) + (1 * 2 ** 2) + (1 * 2 ** 1) + (0 * 2 ** 0) = 8 + 4 + 2 + 0 = 14

10010(二进制)-> ?(十进制)
(1 * 2 ** 4) + (0 * 2 ** 3) + (0 * 2 ** 2) + (1 * 2 ** 1) + (0 * 2 ** 0)= 16 + 0 + 0 + 2 + 0 = 18

1000(二进制)-> ?(十进制)
(1 * 2 ** 3) + (0 * 2 ** 2) + (0 * 2 ** 1) + (0 * 2 ** 0) = 8 + 0 + 0 + 0 = 8

1100(二进制)-> ?(十进制)
(1 * 2 ** 3) + (1 * 2 ** 2) + (0 * 2 ** 1) + (0 * 2 ** 0) = 8 + 4 + 0 + 0 = 12

八进制转换成十进制

参照二进制算法,八进制,索引从后往前,每一位数字与乘以8的当前索引次方(当前数字 * 8^索引),然后相加得出的和就是该八进制数字的十进制
20(八进制)-> ?(十进制)
(2 * 8 ** 1) + (0 * 8 ** 0) = 16 + 0 = 16

177(八进制)-> ?(十进制)
(1 * 8 ** 2) + (7 * 8 ** 1) + (7 * 2 ** 0)= 64 + 56 + 7 = 127

274(八进制)-> ?(十进制)
(2 * 8 ** 2) + (7 * 8 ** 1) + (4 * 2 ** 0)= 128 + 56 + 4 = 188

40(八进制)-> ?(十进制)
(4 * 8 ** 1) + (0 * 8 ** 0) = 32 + 0 = 32

负数的二进制?

以上通过两组数字知道八进制和二进制,二进制和十进制 如何相互转换,十六进制十四进制应该知道如何计算了。
但是发现上面计算的都是正数,那负数的二进制该如何计算?