主页 > imtoken钱包app > 十六进制转换(十进制与

十六进制转换(十进制与

imtoken钱包app 2023-01-18 09:27:52

提示

二进制 0, 1

八进制 0、1、2、3、4、5、6、7

十进制 0、1、2、3、4、5、6、7、8、9

十六进制 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12) , D(13), E(14), F(15)

注意

16进制中,10~15用字母表示,字母可以大写也可以小写,也可以混用。例如十六进制的10可以用A或a来表示; 1011可以用AB或Ab表示。

现在正式的话题来了,见下文

一、十进制和<@二、八、十六进制互换

1、十进制->八进制

将十进制数的整数部分连续除以8,直到商为0,然后倒序得到余数

将小数的小数部分连续乘以8,直到小数为0或达到要求的精度,即可得到正序乘积的整数部分

例子

假设一个十进制数是 83.12

83÷8=10,余数为 3

10÷8=1,余数为 2

1÷8=01000转换为十六进制,余数为 1

1000转换为十六进制

0.12*8=0.96 整数部分为0,小数部分为0.96

0.96*8=7.68 整数部分是 7 小数部分是 0.68

0.68*8=5.44 整数部分是 5 小数部分是 0.44

0.44*8=3.52 整数部分是 3 小数部分是 0.52

.

.

.

这里省略,你可以自己进行下一个操作,因为例子,精度更短。

(十)83.12=(八)123.0753

2、十进制->十六进制

将十进制数的整数部分连续除以16,直到商为0,然后将余数倒序排列

将十进制数的小数部分连续乘以16,直到小数为0或达到要求的精度,即可得到正序乘积的整数部分

例子

假设一个十进制数是 299.12

299÷16= 18 的余数是 B(11)

18÷16=1,余数为 2

1 ÷ 16=0 余数为 1

1000转换为十六进制

0.12*16=1.92 整数部分是 1 小数部分是 0.92

0.92*16=7.68整数部分是E(14)小数部分是0.72

0.72*16=5.44整数部分是B(11)小数部分是0.52

.

.

.

(十)299.12=(十六)12b.1eb

3、十进制->二进制

将十进制数的整数部分连续除以2,直到商为0,然后倒序得到余数

将小数的小数部分连续乘以2,直到小数为0或达到要求的精度,则可以得到正序乘积的整数部分

例子

假设一个十进制数是 3.25

3÷2= 1 的余数为 1

1 ÷ 2=0 余数为 1

0.25*2=0.5 整数部分为0,小数部分为0.5

0.5*2=1 整数部分为1,小数部分为0

(十)299.12=(二)11.01

1000转换为十六进制

总结

其实十进制到<@二、八、十六进制的转换大致相同,<@二、八、十六进制到十进制的转换也是如此

4、<@二、八、十六进制->十进制

将二进制数(或八进制或十六进制数)以位权重的形式展开为多项式和,求出最终的和

例子

假设二进制数是1111

1*2的立方等于8

1*2的幂等于4

1*2的幂等于2

1*2的零次方等于1

8+4+2+1=15

ie(二)1111=(十)15

注意最大N为总位数-1,然后依次递减幂,直到为0的幂。例如二进制1111,最大N幂为4-1=3,然后依次递减,最后为0幂。八进制和十六进制也是如此

假设八进制数是 123

1*8的幂等于64

2*8的幂等于16

3*8的零次方等于3

1000转换为十六进制

64+16+3=83

即(八)123=(十)83

假设十六进制数为 12B

1*16的平方等于256

2*16的幂等于32

11*16的零次方等于11

256+32+11=299

ie(十六)12B=(十)299

<@二、八、十六进制和二进制互换

1、间接法

二进制转十进制再转八进制或者十六进制,可以看上面十六进制的转换,自己试试看。

2、直接法

定理1:将三位二进制转换为一位八进制,反之亦然,将一位八进制转换为三位二进制;

定理2:将四位二进制转换为一位十六进制,反之亦然1000转换为十六进制,将一位十六进制转换为四位二进制

定理3:分位数不足时,整数部分最左边填0,小数部分最右边填0;

例子:

二进制转八进制、十六进制

1000转换为十六进制

假设二进制数是1011001.1101011

分位数 010|101.101|010|是分隔符

其余与二进制转十进制相同

将每三位作为一个整体,计算值,最后连接起来

如010

0*2的平方等于0

1*2的幂等于2

0*2的零次方等于0

所以 010=2

同样计算101(值为5),最后连接

(二)10101.10101 = 010 |101.101|010 =(八) 25.52

同理,只要把每四位看成一个整体,计算值,最后连接起来

(二)11011011.11011111 =1101|1011.1101|1111 = (十六)DB.DF

八进制,十六进制转二进制,反之亦然

(十六)D|B.D|F=1101|1011.1101|1111 =(二)11011011.11011111

总结

8 是 2 的三次方,所以需要是二进制的 3 位; 16是2的4次方,所以二进制需要4位,所以32base应该需要5位二进制,即在N个base中,N是2的x次方,系统需要二进制x位

如有错误请指出