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位二进制数
版权声明:本文标题:进制总结 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1734954911a1614139.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论