进制数之间的转换方法

绝世美人儿
814次浏览
2021年02月08日 09:56
最佳经验
本文由作者推荐

英文转换中文-

2021年2月8日发(作者:感恩818)


一般来说,对于任意大于


1


的整数


n


,存在


n


进制,其特点是


基数为


n


,逢


n


进一


。其中最常用的是二进制、八进制和十六进制。



任意进制的数字对应的十进制值为:



Kn×


Bn


+


Kn-1×


Bn-


1


+


……


+


K1×B1


+


K0×B0


+


K


-1×


B-1


+


K-2×


B-


2


……


+


K-m×


B-m


上式中,

< p>
B


称为数字系统的基数,


Bn


B0


称为数字


Kn



K0


的权值。



1.


基本知识




十进制



基 数为


10


,逢


10


1


。在十进制中,一共使用


10


个不同的数字符号,这些符号


处于不同位置时,其权值各不相同 。





二进制



基数为


2


,逢


2



1


。在二进制中,使用


0


< p>
1


两种符号。




八进制



基数为


8




8



1



八进制使用


8


种不同的符号,


它们与二进制的转换关系为:



0



000 1



001 2



010 3



011 4



100 5



101 6



110 7



111




十六进制



基数为


16




16



1



十六进制使用


16


种不同的符号,


它们 与二进制的转换关


系为:



0



0000 1



0001 2



0010 3



0011 4



0100 5



0101 6



0110 7



0111



8



1000 9



1001 A



1010 B



1011 C



1100 D



1101 E



1110 F



1111



二进制数的运算




算术运算:加法




0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 1 0


(向高位进


1





算术运算:减法




0 ? 0 = 0 0 ? 1 = 1


(向高位借


1




1 ? 0 = 1 1 - 1 = 0




逻辑运算:或(∨)




0




0 = 0 0




1 = 1 1




0 = 1 1




1 = 1




逻辑运算:与(∧)




0




0 = 0 0




1 = 0 1




0 = 0 1




1 = 1




逻辑运算:取反




0


取反为


1 1


取反为


0



注意:算术运算会发生进位、借位,逻辑运算则按位独立进行,不发生位与位之


间的关 系,其中,


0


表示逻辑假,


1


表示逻辑真。




2.


转换为十进制





二进制化为十进制




例:将二进制数


101.01


转换成十进制数






101.01



2 = 1


×


22 + 0


×


21 + 1


×


20 + 0


×


2-1 + 1


×


2-2 =


< br>5.25



10




八进制化为十进制




例:将八进制数


12.6

< p>
转换成十进制数




(< /p>


12.6



8 = 1


×


81 + 2


×


80 + 6


×


8-1 =


< br>10.75



10



十六进制化为十进制




例:将十六进制数


2AB.6


转换成十进制数:





2AB.6



16 = 2


×


162 + 10


×


161 + 11


×


160 + 6


×


16-1 =



683.375



10



3.


转换为二进制




八进制化为二进制




规则:按照顺序,每


1


位八进制数改写成等值的


3


位二进制数,次序不变。



例:



(< /p>


17.36



8 =



001 111 .011 110



2 =


< br>1111.01111



2




十六进制化为二进制




规则:每


1


位十六进制数改写成等值的


4


位二进制数,次序不变。








3A8C.D6



16


=



0011


1010


1000


1100.1101


0110



2



111.1101011



2




十进制整数化为二进制整数




规则:除二取余,直到商为零为止,倒排。




例:将十进制数


86


转化为二进制




2 | 86…… 0



2 | 43…… 1



2 | 21…… 1



2 | 10…… 0



2 | 5 …… 1



2 | 2 …… 0



2 | 1 …… 1



结果:



86



10 =



1010110


< br>2




十进制小数化为二进制小数




规则:乘二取整,直到小数部分为零或给定的精度为止,顺排。




例:将十进制数


0.875


转化为二进制数




0.875



×



2



1.75



=


×



2



1.5



×


2


1.0



结果:



0 .875



10 =



0.111



2



4.


转换为八进制




二进制化为八进制




整数部份从最低有效位开始,



3


位一组,


最高有效位不足


3


位时以


0


补齐,

< p>


一组均可转换成一个八进制的值,转换完毕就是八进制的整数。




小数部份从最高有效位开始,



3


位一组,


最低有效位不 足


3


位时以


0


补齐,



一组均可转换成一个八进制的值,转换完毕就是八进制 的小数。




例:


11001111.01111



2 =



11 001 111.011 110



2 =


< br>317.36



8




十六进制化为八进制




先用


1


化< /p>


4


方法,将十六进制化为二进制;再用


3



1


方法,将二进制化为


8


制。



例:




1C A



16 =





2 =



712



8


说明:小数点前的高位零和小数点后的低位零可以去除。





十进制化八进制



< br>方法


1


:采用除


8


取余法。



例:将十进制数


115


转化为八进制数




8| 115…… 3



8| 14 …… 6



8| 1 …… 1



结果:



115



10 =



163



8



方法


2


:先 采用十进制化二进制的方法,再将二进制数化为八进制数



例:



115



1 0 =



1110011



2 =



163



8



5.


转换为十六进制




二进制化为十六进制




整数部份从最低有效位开始,以


4< /p>


位为一组,最高有效位不足


4


位时以


0


补齐,


每一组均可转换成一个十六进制的 值,转换完毕就是十六进制的整数。



小数部份从最高有效位开 始,以


4


位为一组,最低有效位不足


4


位时以


0


补齐,


每一组均可转换成一个十六进制的值,转换完毕就是十六进制的小数。




例:



11 001111.01111



2 =



1100 1111 .0111 1000



2 =



CF.78



16



八进制化为十六进制




先将八进制化为二进制,再将二进制化为十六进制。



例:



712



8 =



111001010



2 =



1CA



16



十进制化为十六进制




方法


1


:采用除


16


取余法。


英文转换中文-


英文转换中文-


英文转换中文-


英文转换中文-


英文转换中文-


英文转换中文-


英文转换中文-


英文转换中文-