问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

“进制转换”公式大集合

创作时间:
作者:
@小白创作中心

“进制转换”公式大集合

引用
CSDN
1.
https://m.blog.csdn.net/jjmhx/article/details/144827880

进制转换是计算机科学和编程中的一个基础且重要的知识点。本文将详细介绍十进制整数转N进制、N进制整数转十进制数、进制快捷转换以及十进制小数转二进制数等各种转换方法,帮助读者更好地理解和掌握这一知识点。

咱们都知道十进制是“逢10进1”,同理,N进制就是“逢N进1”。进制其实就这么简单。它的麻烦之处在于各种进制之间的转换。

一、十进制整数转N进制

1. 十进制转二进制

除2取余法:连续除以2,直到商为0,逆序排列余数。

例如十进制数57转为二进制数:

序号
被除数
余数
备注
1
57
28
1
57除以2得28余1
2
28
14
0
28除以2得14余0
3
14
7
0
14除以2得7余0
4
7
3
1
7除以2得3余1
5
3
1
1
3除以2得1余1
6
1
2
1
1除以2得0余1(商为0,结束)

逆序排列余数(从下往上)得到二进制数:111001B。

注意除2取余每次都是用上次的商作为被除数,即:取商除2取余。

2. 十进制转二进制

十进制转N进制与转二进制算法如出一辙,即除n取余法。

比如把十进制数107转换成八进制:

107除以8等于13,余数是3;
13除以8等于1,余数是5;
1除以8等于0,余数是1。

把这些余数倒序排列,就是153,这就是十进制数107的八进制表示。

二、N进制整数转十进制数

1. 二进制转十进制

按位权展开:各位数字乘以位权的和。

这是因为现行的计数方法都是采用“位值法(Positional Value Algorithm)”,它的特点是各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关。位置所代表的权重称为位权,简称权。

看似很高大上,但其实这种表示方法我们非常熟悉,比如:9527=91000+5100+2*10+7。

上面算式中的1000、100、10、1就是位权,因此我们可以得到一个公式:数=∑数字*位权。

1000、100、10、1分别对应10^3、10^2、10^1、10^0,这下你看出门道没?底数代表进制,指数代表位置(从个位起向左依次为0、1、2、……)。

那么,你自然能联想到,二进制位权的底数就应该是2。

如二进制数111001.000B数字与位权的对应关系:

按位权展开求和即可得到对应的十进制数:

其实,本质上来说,位值法的位权表示的是倍数关系:每一位都是后一位的N倍。N就是指N进制,十进制就表示每一位是后一位的10倍,二进制就表示每一位是后一位的2倍。这其实就是位权展开法的原理。

2. N进制转十进制

其他进制数转十进制数同理,八进制数的位权是以8为底的幂,十六进制数的位权是以16为底的幂。位权的底数部分被称为“基数”,二进制的基数是2,十进制的基数是10,八进进制的基数是8,十六进制的基数是16。

比如8进制数字153,按位权展开求和为:

三、进制快捷转换

因2的3次方是8,所以二进制转为八进制时,可3个一组进行转换,每组内位权的指数编号重新从零开始计算。如111001B转为八进制数:

同理,由于2的4次方是16,二进制转十六进制时,可4个一组进行转换(优先满足右侧分组,因为最高位可以补零),如111001B转为十六进制数:

四、十进制小数转二进制数

与整数“除2取余法”的门道儿正相反,采用“乘2取整法”。

乘2取整法:用2乘十进制小数,将积的整数部分取出,再用2乘余下的小数部分,如此循环,将每步取出的整数部分顺序排列,即为小数的二进制。

例如,十进制数32.12转为二进制数:

整数部分32用除2取余得到二进制数为100000。

小数部分为0.12,用乘2取整法:

序号
乘2
取整
备注
1
0.12×2=0.24
0
2
0.24×2=0.48
0
3
0.48×2=0.96
0
4
0.96×2=1.92
1
取整后,后续运算因数变为1.92-1=0.92
5
0.92×2=1.84
1
取整后,后续运算因数变为1.84-1=0.84
6
0.84×2=1.68
1
取整后,后续运算因数变为1.68-1=0.68
7

注意乘2取整每次都是用上次积的小数部分作为乘数,即:取小乘2取整。

与整数不同的是,乘2取整可能会无限运算下去,需按题目精度要求截取足够位数。

顺序排列(从上到下)取出整数,得到小数部分的二进制数为.000111。

故最终求得二进制小数:100000.000111。

总结:整数部分,除2取余、逆序排列;小数部分,乘2取整、顺序排列。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号