admin 管理员组

文章数量: 1086019


2024年12月22日发(作者:java如何配置系统变量)

进制转换大总结

1.基本知识

十进制 : 这个不用我讲,从幼儿园的时候一直用到现在.

二进制 :基数为2,逢2进1。如(0,1,10,11,100,101,110,111,1000,) 使用0和1

两种符号。

八进制 :基数为8,逢8进1。八进制使用 (0,1,2,3,4,5,6,7) 八个符号

十六进制 :基数为16,逢16进1。十六进制使用16种不同的符号 :

(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

第一部分:十进制转为各种进制(二进制、八进制、16进制)

实际上,十进制转各进制,我们只用记住一句话,除以n进制并取余,余数反序。

概念的不讲了,看例子:

十进制 83 转为 二进制 (|表示是除号)

进制 十进制数 余数

2 | 83 1 //83除以2 结果是 41(转下一行) , 余数为1 ,以下类推

2 | 41 1

2 | 20 0

2 | 10 0

2 | 5 1

2 | 2 0

2 | 1 1

余数从上到下排列就是1100101 我们只需把它反过来,就是1010011.

得到的结果是 十进制的83 = 二进制的1010011

十进制的 598 转换为 八进制

进制 十进制数 余数

8 | 598 6 //598除以8 结果为74(转一下行) 余数为6 ,以下类推

8 | 74 2

8 | 9 1

8 | 1 1

余数从上到下排列就是6211 我们只需把它反过来,就是1126.

得到的结果是 十进制的598 = 八进制的1126

十进制的 3218 转换为 十六进制

进制 十进制数 余数 //3218除以16 结果为201(转一下行) 余数为2 ,以下类推

16 | 3218 2

16 | 201 9

16 | 12 12(即C)

余数从上到下排列就是29C 我们只需把它反过来,就是C29.

得到的结果是 十进制的598 = 八进制的1126

第二部分:各进制(二进制、八进制、16进制)向十进制的转换

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

Kn×B^n + Kn-1×B^(n-1) + …… + K1×B^1 + K0×B^0 + K-1×B^(-1) + K-2×B^(-2) …… +

K-m×B^(-m)

上式中,B称为数字系统的基数,Bn至B0称为数字Kn至K0的权值,B^n代表B的n次幂

理解一下上面的式子: K代表某一位上的数, Kn代表第n位上的数, B代表进制数(即2或8

或16),

B^n代表进制数的位数次方, Kn×B^n意为:第n位上的数×进制的n次方,

上面的公式过于抽像,我们直接看例子来慢慢理解

二进制化为十进制

例:将二进制数101.01转换成十进制数

二进制中的 101.01 = 1×2的2次方 + 0×2的1次方 + 1×2的0次方 + 0×2的-1次方 + 1×2

的-2次方 = 5.25

5.25就是我们要求得的十进制数了

八进制化为十进制

例:将八进制数12.6转换成十进制数

八进制的 12.6 = 1 × 8的1次方 + 2×8的零次方 + 6×8的-1次方 = 十进制的 10.75

十六进制化为十进制

例:将十六进制数2AB.6转换成十进制数:

(2AB.6)16 = 2×16的2次方 + 10×16的1次方 + 11×16的零次方 + 6×16的-1次方 = 十

进制的 683.375

理解了以上的东西,相信大家对一般的应用已经没有问题了.

接下来我们加深一点,再学其它各进制的相互转换

第三部分,各进制转二进制

八进制化为二进制

规则:按照顺序,每1位八进制数改写成等值的3位二进制数,次序不变。

例: 八进制的17.36 = 二进制的(001 111 .011 110) = 二进制的1111.01111

十六进制化为二进制

规则:每1位十六进制数改写成等值的4位二进制数,次序不变。

例: 十六进制的3A8C.D6 = 二进制的(0011 1010 1000 1100.1101 0110)

= 二进制的(111.1101011)

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

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

例:将十进制数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)2进制

例二:十进制的1-10转换成二进制

0 | 0

1 | 0

2 | 10

3 | 11

4 | 100

5 | 101

6 | 110

7 | 111

8 | 1000

9 | 1001

10 | 1010

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

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

例:将十进制数0.875转化为二进制数

0.875

× 2

1.75

× 2

1.5

×2

1.0

结果:(0.875)10 进制= (0.111)2 进制

4.转换为八进制

二进制化为八进制

整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转

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

小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转

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

例:(11001111.01111)2进制 = (11 001 111.011 110)2 = (317.36)8进制

十六进制化为八进制

先用1化4方法,将十六进制化为二进制;再用3并1方法,将二进制化为8制。

例: (1CA)16 = ()2进制 = (712)8进制

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

十进制化八进制

方法1:采用除8取余法。

例:将十进制数115转化为八进制数

8| 115…… 3

8| 14 …… 6

8| 1 …… 1

结果:(115)10进制 = (163)8进制

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

例:(115)10进制 = (1110011)2进制 = (163)8进制

5.转换为十六进制

二进制化为十六进制

整数部份从最低有效位开始,以4位为一组,最高有效位不足4位时以0补齐,每一组均可

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

小数部份从最高有效位开始,以4位为一组,最低有效位不足4位时以0补齐,每一组均可

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

例:(11001111.01111)2进制 = (1100 1111 .0111 1000)2进制 = (CF.78)16进制

八进制化为十六进制

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

例:(712)8进制 = (111001010)2进制 = (1CA)16进制

十进制化为十六进制

方法1:采用除16取余法。

例:将十进制数115转化为八进制数

16| 115…… 3

16| 7 …… 7

结果:(115)10进制 = (73)16进制

方法2:先将十进制化为二进制,再将二进制化为十六进制。

例:(115)10进制 = (1110011)2进制 = (73)16进制

//////////////////////////////////////////////////////////////////////

最后总结

数制也称计数制,是指用同一组固定的字符和统一的规则来表示数值的方法.

十进制(自然语言中)通常用0到9来表示,

二进制(计算机中)用0和1来表示,

八进制用0到7表示,

十六进制用0到F表示。

(1)十进制整数转换成二进制(八进制、十六进制),

转换方法:用十进制余数除以二(八,十六)进制数,求其数即为转换后的二(八、十六)

进制数。

(2)二(八、十六)进制整数转换成十进制整数,

转换方法:将二(八,十六)进制数按权展开(Kn * B的n次方)+.......,求累加和便可得到

相应的十进制数。

(3)二进制与八进制或十六进制数之间的转换,

二进制与八进制之间的转换方法:3位二进制可转换为1位八进制,1位八进制数可以转换

为3位二进制数。

二进制数与十六进制之间的转换方法:4位二进制可转换为1位十六进制数,1位十六进制

数转换为4位二进制数


本文标签: 二进制 八进制 进制 化为 小数点