十六进制转换成十进制的具体算法?

十六进制转换成十进制的具体算法是: 1、首先明白16进制数(从右到左数是第0位,第1位,第2位……)的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方,依次这样排列下去。 2、明白ABCDEF表示的二进制数字分别是10,11,12,13,14,15。 3、十六进制转换成十进制的公式是:要从右到左用二进制的每个数去乘以16的相应次方,然后这些数字相加就是了。 在进行进制转换时有一基本原则: 转换后表达的“量”的多少不能发生改变。二进制中的111个苹果和十进制中的7个苹果是一样多的。 十进制中的数位排列是这样的…… 万 千 百 十 个 十分 百分 千分…… R进制中的数位排列是这样的……R^4 R^3R^2 R^1 R^0 R^-1 R^-2 R^-3…… 可以看出相邻的数位间相差进制的一次方。
二进制、十进制和十六进制互相转换怎么转换?
十进制转化为十六进制:
先将十进制转换为二进制 ,二进制再转换成十六进制
二进制转十六进制:二进制的四位,转换为十六进制的一位,整数位从最低位开始向左推进四位进行运算,小数位是从右向左推进运算
十进制整数转换为二进制整数采用"除2取余,逆序排列",十进制小数转二进制小数采用的是“乘二取整,顺序排列”
二进制和十六进制怎么转换
以二进制数的小数点为界,整数部分从右至左每4位分开,最左边不足4位时前面用0补齐;小数部分从左至右每4位分开,最右边不足4位时后面用0补齐。然后按每4位对应的十六进制符号写出来,小数点位置不变就OK了。例如要将11010010110111.0011101化为十六进制的步骤如下: 以小数点为界左右每4位分开:11'0100'1011'0111.0011'101; 最左边和最右边用0补齐至4位:0011'0100'1011'0111.0011'1010; 用十六进制的符号把每4位的二进制码写出来:34B7.3A。 所以11010010110111.0011101(2) = 34B7.3A(16)。 若要将十六进制变换为二进制,则只需将十六进制符号直接写成4位二进制码,去除最前面和最后面的0就可以了。如BE9.3F,直接写1011 1110 1001.0011 1111即可。
十六进制转十进制比较简单的算法,怎么算?
如果是纯计算的话
,
用这个表来转
:
16
,
256
,
4096
,
65536
,
1048576
,
16777216 ...(
分别是就是
16^1
,
16^2
,
16^3……)
先找第一个比要转的那个数小的数
,
然后用这个数除那个要转的数
,
得到的商就是那个位的数
(
位数就是是指数
),
然后找到第一个比余数小的数
,
还按照那个方法
,
依此循环
,
直到余数小于
16
例子
:
700980
第一步
,700980
最大比
65536
大
,
用
700980
除以
65536,
商是
10,
那么第
4
位就是
A
余数是
45630
第二步
,45620
最大比
4096
大
,
用
45620
除以
4096,
商是
11,
第
3
位是
B
余数是
564
第三步
,564
最大比
256
大
,
用
564
除以
256,
商是
2,
第
2
位
2
余数是
52
第四步
,52
最大比
16
大
,
用
52
除以
16,
商是
3,
第
1
位
3
余数是
4
第
0
位是
4
结果就是
:
AB234
第二个例子
:
3599
用
256
除
,
得
14,
就是
E
余数
15,
不够
16,
就把第
1
位空出来
,
用
0
填上
15
滚到第
0
位
,
就是
F
结果
:
E0F
一十进制就是逢十进一(0,1,2,3,4,5,6,7,8,9,后面就要进位才能表示了)
十六进制就是逢十六进一(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,后面就要进位才能表示了)
所谓进制就是单个数不能表示时要用二位数及二位数以上的数表示的处理办法.其实可以任意进制,只是要用起来方便罢了,比如时间就是60进制,纪年中的世纪是一百进度,圆的一周用度数表示时是360进制.
十进制: 34 就是 3 * 10^1 + 4 * 10^0
而在十六进制中: 34就是 3 * 16^1 + 4 * 16^0 (转换成十进制只需乘出
结果就行了,得52,即十六进制中的34为十进制中的52)
十进制化为十六进制就是除16的办法: 34除以16,得2余2,即为22,即十进制中的34
这十六进制中的22
(即:十六进制化成十进制是乘16,十进制化成十六进制是除16)
事实上,k(k是正整数)进制数逢k进一这么个意义,一个十进制数可写成
a(n)*10^n+...+a(1)*10+a(0)+a(-1)*10^(-1)+... (a(i)表示0—9中的某个数)
同样,k进制数有形式:
b(n)*k^n+...+b(1)*k+b(0)+b(-1)*k^(-1)+... (b(i)表示0—(k-1)中的某个数)
当一个k进制数要转化为十进制数时,用上式直接计算即可;而当十进制数要转化为k进制数时,则对其整数部分除k取余,对其小数部分则乘k取整,此过程下以十进制转化十六进制为例举一例:
十进制数1673.59375
1673/16=104...9 , 104/16=6...8 , 6/16=0...6;
0.59375*16=9.5 (取9), 0.5*16=8.0 (取8).
所以十进制数1673.59375转化为十六进制数后为: 986.98
二数的进制和进制转换
考虑一个10进制数123,数字1、2、3在这个数中的重要性是不一样的,3代表的是100的3倍,2代表101的2倍,而1代表的则是102的1倍。数学上把100,101和102称为对应数位上的权重(简称权),分别表示了对应位上的数字对整个数值的“贡献”。对于10进制数来说,各位权从小到大分别是100、101、102……,都是10的各次幂。对于各位上的数字,我们称为某权的系数,简称系数。
其他进制数也存在同样的问题,例如2进制数各位权重分别是2的各次幂,8进制数是8的各次幂等等。
需要说明的是,各种进制数都是人们为了理解数而进行的一种表述,在计算机计算过程中,是不存在进制这种概念的,对于C语言表示数的三种形式:0x12(16进制)、18(10进制)和022(8进制),在内存中都是一样的。
如果已经知道一个数k,在某种进制w条件下,计算各位的系数一般采用除余法,基本算法如下:
首先估计这个数的最大位数N
n = N,divisor = wn-1
b(n) = k / divisor, k = k % divisor,divisor = divisor /w,n --
如果n ==0算法结束 ,否则转3
例如对于C语言中的unsigned char 类型,最大可能为3位8进制数,如果已经知道一个数n=252,计算8进制的过程如下:
N =3
n = N,divisor = 8n-1 = 64
b(3) = 252 / 64 = 3, k = k % 64 =60,divisor = divisor /8 = 8,n -- = 2
b(2) = 60/8 = 7,k = k %8 =4,divisor = 8/8 =1,n = 1
b(1) = k / 1= 4 ,k=k %1 =0,divisor = 1/8,n = 0
n == 0算法结束
计算结果252就是8进制数0374
如果不按照上面的幂次方式规定各位数的权,也可以定义一些特殊的进制数。例如,我们按照从小到大顺序分别规定各位的权重分别为w(n),n=1,2,3....,(注意,必须满足w(n) | w(m),n<= m,也就是低位权必须能整除高位权)已知一个数计算各位系数也一样可以采用修正后的除余法。修正后的除余法为:
首先估计这个数的最大位数N
n = N,divisor = w(n)
b(n) = k / divisor, k = k % divisor,n--,divisor = w(n)
如果n ==0算法结束 ,否则转3
可见,当w(n) = bn时,这个修正的除余法就和开始的除余法等价了
如果需要在不同进制间转换,最简单的方法是先把一种不容易进行四则运算的进制转换成容易进行四则运算的10进制,然后利用除余法转换成给定的进制。例如对于022,很容易利用权的定义计算出他的10进制形式为2 * 81 + 2 * 80 = 18,转换成16进制利用除余法可以得到为0x12。
计算机十六进制转换成十进制应该怎么算?
4个2进制位为一个16进制数,2进制1111为16进制F,2进制中千位的1=8,百位的1=4,十位的1=2,个位的1=1,将各个位的数作相应转换再相加,的到的数就是10进制数0-15,可轻松转换成16进制。如01011100,可看成是两组2进制数0101和1100,则这个数就是16进制的5C。
10转16:
100以内一点的10转16心算比较快,复杂的用“计算器”算了。10转16用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为十位的16进制数,其余数为个位的16进制数,没余数则个位为0。如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为各位数。
16转10:
用相反的道理,将十位数乘以16加上个位数。如5A,将5乘以16得80,加上A的10进制10,结果是90。
十六进制如何转化为十进制
十六进制转换成十进制在电脑的“计算机-程序员”里面就可以进行相应的设置。 具体操作方法如下: 1、开始菜单里面找到“计算器”; 2、在计算器的“查看”找到“程序员”,点击进入; 3、点击十进制数既可以了。
计算机十进制0.03转十六进制
十进制数转R进制:
1、十进制整数转换为R进制整数
十进制整数转换为R进制整数采用"除R取余,逆序排列"法。具体做法是:用R去除十进制整数,可以得到一个商和余数;再用R去除商,又会得到一个商和余数,如此进行,直到商为小于R时为止,然后把先得到的余数作为R进制数的低位有效位,后得到的余数作为R进制数的高位有效位,依次排列起来。
2、十进制小数转换成二进制小数采用"乘R取整,顺序排列"法。具体做法是:用R乘十进制小数,可以得到积,将积的整数部分取出,再用R乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
37.25转换为二进制,R就为2
整数部分为
37÷2=18余1,18÷2=9余0, 9÷2=4余1, 4÷2=2余0, 2÷2=1
故整数二进制为:10101
小数部分为:
0.25*2=0.5 取0, 0.5*2=1取1
故小数二进制为:01
37.25转换为二进制10101.01
十进制数转十六进制:(注:16进制的0~9用0~9表示,16进制的10~15用A~F表示)
37÷16=2余5
故整数十六进制为:52
小数部分为:
0.25*16=4
37.25转换为十六进制为52.4
十进制转换成十六进制是怎么计算的
十进制转化为十六进制计算方式,简单说就是整数除以16取余,直到商为0为止,然后从最后一个余数读到第一个 十六进制转化为十进制计算方式,按权展开、相加即得十进制数。
十进制转换成十六进制数是?
1234除以16取余数。第一次1234÷16=77余2,第二次,77÷16=4余13,第三次,4÷16=0余4。因为13在16进制中用d表示,所以除至0时的余数从最后写到最前便是16进制数了,也就是4d2。其实十进制和其他进制转换,都可以用这种方法。但这种方法仅限整数的转换。
十六进制转换十进制 ffff

十六进制ffff转换成十进制是65535,在十六进制中F表示15。十六进制转十进制的方法和二进制转十进制的方法类似。也是将各权值相加得到十进制数。 计算过程:第一位的权值为15乘以16的0次方等于15,第二位的权值为15乘以16的1次方等于240,第三位的权值为15乘以16的2次方等于3840,第四位的权值为15乘以16的3次方等于61440。最后将得到的结果相加,得到十进制结果65535。 扩展资料 十六进制转二进制的计算: 第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。比如第0位的权值为16的0次方,第1位的权值为16的1次方.....。按照这样的方法,依次将每位的权值算出,进行相加得出结果。 十六进制中,A代表10,B代表11,C代表12,D代表13,E代表14,F代表15。 参考资料来源:百度百科-十六进制至十进制转换
十进制转化为十六进制怎么算
十进制转化为十六进制计算方式,简单说就是整数除以16取余,直到商为0为止,然后从最后一个余数读到第一个 十六进制转化为十进制计算方式,按权展开、相加即得十进制数。
十六进制转换十进制的公式是什么?

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方:在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。 假设有一个十六进数 2AF5, 那么如何换算成10进制。 用竖式计算: 2AF5换算成10进制:第0位: 5 * 16^0 = 5第1位: F * 16^1 = 240第2位: A * 16^2 = 2560第3位: 2 * 16^3 = 8192 +10997。 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997。 现实生活中,我们最常见的数为十进制数,比如交通信号灯上的数字,电子表上的时间等。如果在这些地方你看到0xAA,就会感觉很奇怪。 但是这样的数代表什么意思,为什么会有这样的数,它与十进制的数有什么关系以及它都有哪些应用呢。下面将带你了解一下十六进制数的秘密。
16进制怎么转为10进制.

16进制转10进制 16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。 例:2AF5换算成10进制: 用竖式计算: 第0位: 5 * 16^0 = 5 第1位: F * 16^1 = 240 第2位: A * 16^2= 2560 第3位: 2 * 16^3 = 8192 ------------------------------------- 10997 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 十六进制转换 十六进制转换有16进制每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F(字母不区分大小写)这六个字母来分别表示10,11,12,13,14,15。 定义 16进制即逢16进1,每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个大小不同的数。16进制转换即16进制与其他不同进制之间的换算转换,常见如2进制、8进制、10进制等进制。 扩展资料 2进制转16进制 16进制就有16个数,0~15,用二进制表示15的方法就是1111,从而可以推断出,16进制用2进制可以表现成0000~1111,顾名思义,也就是每四个为一位。举例: 00111101可以这样分: 0011|1101(最高位不够可用零代替),对照着二进制的表格,1024 512 256 128 64 32 16 8 4 2 1 (一般例举这么多就够了,如果有小数的话就继续往右边列举,如0.5 0.25 0.125 0.0625……) 1024 512 256 128 64 32 16 8 4 2 1 0 0 1 1| 1 1 0 1 左半边=2+1=3 右半边=8+4+1=13=D 结果,0111101就可以换算成16进制的3D。 参考资料:百度百科-十六进制转换
16进制转换10进制,如何转换这个数字?

间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。这里不再做图片用法解释。直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。 1.二进制转十六进制方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。(具体用法如下图) 2.十六进制转二进制方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。(具体用法如下图) 3.十进制转八进制或者十六进制有两种方法第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。这里不再做图片用法解释。第二:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。(具体用法如下图) 4.八进制或者十六进制转成十进制方法为:把八进制、十六进制数按权展开、相加即得十进制数。(具体用法如下图)
十六进制怎么转换成十进制?
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方....
所以,在第N(N从0开始)位上,如果是数x(x大于等于0,并且x小于等于15,即:F)表示的大小为*16的N次方。
假设有一个十六进数2AF5,
那么如何换算成10进制呢?用坚式计算
2AF5换算成10进制:
第0位:5*16^0=5
第1位:F*16^1=240
第2位:A*16^2=2560
第3位:2*16^3=8192
相加等于10997
直接计算就是:
5*16^0+F*16^1+A*16^2+2*16^3=10997
扩展资料:
进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。
基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。
位权是指,进位制中每一固定位置对应的单位值。
十六进制如何转化为十进制?
16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方… 所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。 进制转换表: 例:2AF5换算成10进制: 用竖式计算: 第0位: 5 * 16^0 = 5 第1位: F * 16^1 = 240 第2位: A * 16^2= 2560 第3位: 2 * 16^3 = 8192 ------------------------------------- 10997 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 扩展资料: 十六转十的乘法口诀: 一峘一拾六 二峘三拾二 三峘四拾八 四峘六拾四 五峘八拾 六峘九拾六 七峘一百一拾二 八峘一百二拾八 九峘一百四十四 十峘一百六 屲峘一百七拾六 亗峘一百九拾二 岌峘二百零八 岄峘二百二拾四 岪峘二百四 参考资料: 百度百科—十六进制转换
十六进制如何转化为十进制
二进制,十进制,十六进制转换技巧
十六进制数如何转换成十进制?

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方.... 所以,在第N(N从0开始)位上,如果是数x(x大于等于0,并且x小于等于15,即:F)表示的大小为*16的N次方。 假设有一个十六进数2AF5, 那么如何换算成10进制呢?用坚式计算 2AF5换算成10进制: 第0位:5*16^0=5 第1位:F*16^1=240 第2位:A*16^2=2560 第3位:2*16^3=8192 相加等于10997 直接计算就是: 5*16^0+F*16^1+A*16^2+2*16^3=10997 扩展资料:进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。 基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。 位权是指,进位制中每一固定位置对应的单位值。
十六进制如何直接转换成八进制

八进制与十六进制之间的转换有两种方法: 第一种:之间的转换可以先转成二进制然后再相互转换。 第二种:之间的转换可以先转成十进制然后再相互转换。 例如一个十六进制数053977,将其转换成二进制001 010 011 100 101 110 111,再将该二进制转换为八进制,可得八进制数为1234567。 十六进制为更常用的编程语言 因为两个十六进制数字完全指定一个字节。一些平台的2的幂,字的大小还有指令更容易理解。现代无处不在的x86体系架构也属于这一类,但八进制很少使用这个架构,尽管某些属性的操作码的二进制编码变得更加显而易见,当显示在八进制时,如ModRM字节,它分为2、3和3位,所以八进制可用于描述这些编码。 以上内容参考:百度百科-八进制
中怎样实现16进制数与10进制数之间的转换
可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。
具体实现方法可以参考如下程序:
#include void main(){ int he; int re=0; // 保存转换为10进制的结果 int k=16; // 16进制 int n=1; // 位权 scanf("%d", &he); // 接收用户输入的16进制数,不含0x前缀 while(he != 0) { re += (he%10)*n; // 取出各位位码值,并乘以对应的位权值 he /= 10; // 去掉16进制数的最低位,次低位变为最低位 n *= k; // 位权乘以16 } printf("%d",re); // 输出转换后的结果}
十进制数和十六进制数怎么转换?
16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方… 所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。 进制转换表: 例:2AF5换算成10进制: 用竖式计算: 第0位: 5 * 16^0 = 5 第1位: F * 16^1 = 240 第2位: A * 16^2= 2560 第3位: 2 * 16^3 = 8192 ------------------------------------- 10997 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 扩展资料: 十六转十的乘法口诀: 一峘一拾六 二峘三拾二 三峘四拾八 四峘六拾四 五峘八拾 六峘九拾六 七峘一百一拾二 八峘一百二拾八 九峘一百四十四 十峘一百六 屲峘一百七拾六 亗峘一百九拾二 岌峘二百零八 岄峘二百二拾四 岪峘二百四 参考资料: 百度百科—十六进制转换
十进制和十六进制怎么互相转换
16进制 10进制
00 0
01 1
02 2
.. .
09 9
0A 10
0B 11
0C 12
0D 13
0E 14
0F 15
10 16
1F 31
20 32
将数字符号按序排列成数位,并遵照某种由低位到高位的进位 方式计数表示数值的方法,称作进位计数制。
1. 十进制
十进制计数制由 0、 1、 2、 3、 4、 5、 6、 7、 8、 9共 10个数字符号组成。相同数字符号在不同的数位上表示不同的数值,每个数位计满十就向高位进一,即 “逢十进一 ”。
如: 555.5可以表示成
555.5= 5×100+5×10+5×1+5×( 1/10)
一个任意的十进制数都可以表示成:
2. 八进制
八进制计数制由 0、 1、 2、 3、 4、 5、 6、 7共 8个数字符号组成。相同数字符号在不同的数位上表示不同的数值,每个数位计满八就向高位进一,即 “逢八进一 ”。
如:( 555.5) 8 可以表示成
( 555.5) 8 = 5×16+5×8+5×1+5×( 1/8)
一个任意的十进制数都可以表示成:
3. 二进制
二进制计数制由 0和 1共 2个数字符号组成。相同数字符号在不同的数位上表示不同的数值,每个数位计满二就向高位进一,即 “逢二进一 ”。
如:( 1011.1) 2 = 1×8+0×4+1×2+1×1+1×( 1/2)
一个任意的二进制数都可以表示成:
4. 其他进制
在日常生活和日常工作中还会使用其他进制数。如:十二进制数、十六进制数、百进制数和千进制数等。无论哪种进制数,表示的方法都是类似的。如:十六进制数由 0、 1、 2、 3、 4、 5、 6、 7、 8、 9、 A、 B、 C、 D、 E和 F共十六个符号组成, “逢十六进一 ”。不同的是用 A、 B、 C、 D、 E和 F分别表示 10、 11、 12、 13、 14和 15六个数字符号。
5. 基数与权
某进制计数制允许选用的基本数字符号的个数称为基数。一般而言, J进制数的基数为 J,可供选用的基本数字符号有 J个,分别为 0到 J- 1,每个数位计满 J就向高位进一,即 “逢 J进一 ”。
某进制计数制中各位数字符号所表示的数值表示该数字符号值乘以一个与数字符号有关的常数,该常数称为 “位权 ”(简称 “权 ”)。位权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。
十进制数允许使用十个基本数字符号,所以基数为 10,每位数字符号代表的位数的大小是以 10为底,数字符号所处位置的序号为指数的整数次幂。
为了表达方便起见,常在数字后加一缩写字母后缀作为不同进制数的标识。各种进制数的后缀字母分别为:
B :二进制数。
Q :八进制数。
D :十进制数。
H :十六进制数。
对于十进制数通常不加后缀,也即十进制数后的字母 D 可省略。
( 1 )将二进制数转换成对应的十进制数
将二进制数转换成对应的十进制数的方法是“按权展开求和”:
利用二进制数按权展开的多项式之和的表达式,取基数为 2 ,逐项相加,其和就是对应的十进制数。
例 1 :将二进制数 1011.1 转换成对应的十进制
解: 1011.1B=1×2 3+0×2 2+1×2 1+1×2 0+1×2 -1
=8+0+2+1+0.5
=11.5D
例2:
( 2 )将十进制数转换成对应的二进制数
将十进制数转换为对应的二进制数的方法是:
对于整数部分,用被除数反复除以 2 ,除第一次外,每次除以 2 均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。
对于小数部分,采用连续乘以基数 2 ,并依次取出的整数部分,直至结果的小数部分为 0 为止。故该法称 “ 乘基取整法 ” 。
例:将十进制 117.625D 转换成二进制数
解:整数部分: “除以 2 取余,逆序输出”
小数部分 : “乘以 2 取整,顺序输出”
所以 117.625D = 1110101.101B
例2:
例3:
特别提示:将十进制数转换成其他进制数方法与次上述方法类似。
( 3 )将二进制数转换为对应的八进制数
由于 1 位八进制数对应 3 位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每 3 位分成一组,各组用对应的 1 位八进制数字表示,即可得到对应的八进制数值。最左最右端分组不足 3 位时,可用 0 补足。
例:将 1101101.10101B 转换成对应的八进制数。
解:
所以, 1101101.10101B = 155.52Q 。
同理,用相反的方法可以将八进制数转换成对应的二进制数。
( 4 )将二进制数转为对应的十六进制数
由于 1 位十六进制数对应 4 位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每 4 位分成一组,各组用对应的 1 位十六进制数字表示,即可得到对应的十六进制数值。两端的分组不足 4 位时,用 0 补足。
例:将 1101101.10101B 转换成对应的十六进制数
解:
所以 1101101.10101B = 6D.8AH 。
同理,用相反的方法可以将十六进制数转换成对应的二进制数。
例:将十六进制数 5DF.9 转换成二进制:
例:将二进制数 1100001.111 转换成十六进制:
至于其他的转换方法,如八进制到十进制,十六进制到十进制之间的转换,同样可用按权展开的多项式之和及整数部分用 “ 除基取整数 ” 来实现的。只不过此时基数分别为 8 和 16 。当然,更简单实用的方法是借用二进制数做桥梁,用 “ 八 —— 二 —— 十 ” 或 “ 十六 —— 二 —— 八 ” 的转换方法来实现。