/*
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。
案例:请将0B1011转成十进制数
0B1011 = 1*2^(1-1) + 1*2^(2-1) + 0*2^(3-1) + 1*2^(4-1)
= 1 * 1 + 1 * 2 + 0 + 1 * 8
= 1 + 2 + 8
= 11
*/
/*
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和。
案例:请将0234转成十进制数
0234 = 4*8^(1-1) + 3*8^(2-1) + 2*8^(3-1)
= 4 * 1 + 3 * 8 + 2 * 64
= 4 + 24 + 128
= 156
*/
/*
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。
案例:请将0x23A转成十进制数
0x23A = 10*16^(1-1) + 3*16^(2-1) + 2*16^(3-1)
= 10 * 1 + 3 * 16 + 2 * 256
= 10 + 48 + 512
= 570
*/
/*
规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。
案例:请将34转成二进制
2| 3 4 ---- 0
2| 1 7 ---- 1
2| 8 ---- 0
2| 4 ---- 0
2| 2 ---- 0
1
将余数倒过来就是 : 0B100010
一个字节有8位,只得到6位,还需用2位来填充高位
————>最终为: 0B00100010
*/
/*
规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制。
案例:请将131转成八进制
8| 1 3 1 ---- 3
8| 1 6 ---- 0
2
将余数倒过来就是 : 0203
*/
/*
规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。
案例:请将237转十六进制
16| 2 3 7 ---- D
1 4 (E)
将余数倒过来就是 : 0XED
*/
/*
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可。
每三位一组就是因为二进制的000-111就是八进制的0-7
案例:请将0b11010101转成八进制
0b 11 010 101
11 = 1*2^(1-1)+1*2^(2-1) = 1+2 = 3
010 = 0*2^(1-1)+1*2^(2-1)+0*2^(3-1) = 2
101 = 1*2^(1-1)+0*2^(2-1)+1*2^(3-1) = 1+4 = 5
0b 11(3) 010(2) 101(5)
转换成八进制为: 0325
*/
/*
规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数即可。
每四位一组就是因为二进制的0000-1111就是十六进制的0-F(15)
案例:请将0b11010101转成十六进制
0b 1101 0101
0101 = 1*2^(1-1)+0*2^(2-1)+1*2^(3-1)+0*2^(4-1) = 1+4 = 5
1101 = 1*2^(1-1)+0*2^(2-1)+1*2^(3-1)+1*2^(4-1) = 1+4+8 = 13(D)
0b 1101(D) 0101(5)
转换成八进制为: 0xD5
*/
/*
规则:将八进制数每一位,转成对应的一个3位的二进制数即可。
案例:请将0237转成二进制
2| 7 --1
2| 3 --1
1
7(111)
2| 3 --1
1
3(011)
2| 2 --0
1
2(010)
转成二进制就是: 0B 010 011 111
*/
/*
规则:将十六进制数每一位,转成对应的一个4位的二进制数即可。
案例:请将0x23B转成二进制
2| B --1
2| 5 --1
2| 2 --0
1
B(1011)
2| 3 --1
1
3(0011)
2| 2 --0
1
2(0010)
转成二进制就是: 0B 0010 0011 1011
*/
本文章使用limfx的vscode插件快速发布