首页 > 代码库 > 进制间的相互转换
进制间的相互转换
我们平时计算都是使用十进制数,但是有时候我们需要用到二进制数、十六进制数等。在进制转换中,我们主要需要掌握的是十进制转换成N进制和N进制转换成十进制,而对于任意进制之间的相互转换,例如:P进制转换成R进制。
1、任意进制转十进制:
k(n) * 10^(n-1) + k(n-1) * 10^(n-2) + ... + k(2) * 10^1 + k(1) * 10 ^0,其中n代表数字所在的位数,k(n)代表第n位上的数字值
2、十进制转任意进制:
(1)试减法
例:将十进制1234转八进制步骤如下:
1.首先寻找不大于1234的8的整数次方。
8^3=512<1234
8^4=4096>1234
所以512符合要求,2*8^3=1024。因此最高位为2
用1234-1024=210作为目标数,重复刚才的操作
8^2=64<210
8^3=512>210
3*8^2=192,第二位为3
用210-192=18作为目标数
8^1=8<18
8^2=64>18
2*8^1=16,第三位为2
18-16=2
最低位为2
最后计算出八进制为:2322
(2)短除法
除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,
例:将十进制的(796)D转换为八进制的步骤如下:
1. 将商796除以8,商99余数为4;
2. 将商99除以8,商12余数为3;
3. 将商12除以8,商1余数为4;
4. 将商1除以8,商0余数为1;
5. 读数,因为最后一位是经过多次除以8才得到的,因此它是最高位,读数字从最后的余数向前读,1434,即(796)D=(1434)O。
3、二进制可以与八进制、十六进制直接转换。
比如十进制81的二进制为:1010001
二进制直接转八进制,二进制3个一组不足补0:001 010 001,得到八进制为121
二进制直接转十六进制,二进制4个一组不足补0: 0101 0001,得到十六进制为51
4、八进制、十六进制可以与二进制直接转换,规则与上边相反。
5、八进制与十六进制无法直接转换,可以将八进制先转为十进制,再用十进制转为十六进制。
本文出自 “a4boy” 博客,转载请与作者联系!
进制间的相互转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。