二进制是逢二进一
第一行和第二行相加
1 | 0 | 1 | 1 | |
---|---|---|---|---|
1 | 1 | 1 | 1 | |
1 | 1 | 0 | 1 | 0 |
我们把右边当作低位,左边是高位.
举个例子:
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
1 | 0 | 1 | 0 | 二进制数 |
2^3^ | 0 | 2^1^ | 0 | = 10 |
点拨:
可以看到3210是固定组,往左越来越大,我们从右往左看,二进制数只有0和1,当数字为0时代表没有则为0,如果数字是1,我们就要考虑当前位置对于的位数是多少,例如: 从右往左的第二个数字就是1,而当前位数是1,所以就是2的1次方.最后把所有转换的数字加起来即可.
总结: 位数 = n,遇到1考虑n,2的n次方
上面的例子有个特点就是8,4,2,1这是所有二进制数转十进制通用的
1110 = 14 (8+4+2+0)
1010 = 10 (8+0+2+0)
0001 = 1 (0+0+0+1)
八进制就是逢8进1
第一行和第二行相加
7 | 0 | 1 | 1 | |
---|---|---|---|---|
1 | 2 | 1 | 5 | |
1 | 0 | 2 | 2 | 6 |
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
1 | 0 | 0 | 1 | 八进制数 |
8^3^ | 0 | 0 | 8^0^ | = 513 |
上面是个简单的例子,下面进阶一下
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
3 | 0 | 0 | 5 | 八进制数 |
3*8^3^ | 0 | 0 | 5*8^0^ | = 1541 |
总结: 原数 * 8的n次方(位数=n)
十六进制就是逢十六进一
f | 9 | 9 | 1 | |
---|---|---|---|---|
1 | 2 | 9 | c | |
1 | 0 | c | 2 | d |
因为我们要把数字转为十六进制,所以大于等于10的数字我们用字母代替
A为10,B为11以此类推
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
1 | 0 | 0 | 1 | 十六进制数 |
16^3^ | 0 | 0 | 16 | = 4097 |
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
0 | 2 | 4 | 0 | 十六进制数 |
0 | 2*16^2^ | 4*16^1^ | 0 | = 576 |
总结: 原数 * 16的n次方(位数=n)
将要转换的数字直接除二,最后商为0为止
要转换的数字 | 商 | 余数 |
---|---|---|
56 | 28 | 0 |
28 | 14 | 0 |
14 | 7 | 0 |
7 | 3 | 1 |
3 | 1 | 1 |
1 | 0 | 1 |
所以56的二进制是111000(从下往上排列)
要转换的数字 | 商 | 余数 |
---|---|---|
99 | 12 | 3 |
12 | 1 | 4 |
1 | 0 | 1 |
所以99的八进制是143(从下往上排列)
要转换的数字 | 商 | 余数 |
---|---|---|
498 | 31 | 2 |
31 | 1 | 15 |
1 | 0 | 1 |
所以498的十六进制是1f2(从下往上排列)
八进制的1位对应二进制的3位
10111101010101010010101
可以分为
010 111 101 010 101 010 010 101
分别对应2 7 5 2 5 2 2 5
这个数字就是八进制数
1 2 4 5 6 7
分别对应,也是从右往左
001 010 100 101 110 111
十六进制的1位对应二进制的4位
010111101010101010010101
可以分为
0101 1110 1010 1010 1001 0101
分别对应5 e a a 9 5
9 a 8 f 7
分别对应,也是从右往左
1001 1010 1000 1111 0111
我们要把欲转换的数字转换为二进制,然后再进行转换
37231
11111010011001
0011 1110 1001 1001
对应的数为3 e 9 9
8fc6
1000111111000110
001 000 111 111 000 110
对应的数为:1 0 7 7 0 6
原文:https://www.cnblogs.com/huanhao/p/binary.html