八进制,十进制,十六进制之间的互换怎么算

如题所述

一、八进制与十进制的转换
1、十进制转换成八进制有两种方法:
1)间接法:先将十进制转换成二进制,然后将二进制又转换成八进制
2)直接法:八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,还是整数部分的转换和小数部分的转换,下面来具体讲解一下:
①整数部分
方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。
②小数部分
方法:乘8取整法,即将小数部分乘以8,然后取整数部分,剩下的小数部分继续乘以8,然后取整数部分,剩下的小数部分又乘以8,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,暂取个名字叫3舍4入。
例:将十进制数796.703125转换为八进制数
解:先将这个数字分为整数部分796和小数部分0.703125
2、八进制转换为十进制
方法:按权相加法,即将八进制每位上的数乘以位权,然后相加之和即是十进制数。
二、八进制与十六进制的转换
方法:一般不能互相直接转换,一般是将八进制(或十六进制)转换为二进制,然后再将二进制转换为十六进制(或八进制),小数点位置不变。那么相应的转换请参照上面二进制与八进制的转换和二进制与十六进制的转
三、十六进制与十进制相互转化

十六进制数的第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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-28
十进制整数转换R进制(R可以是任何整数,比如3、5、7)整数,方法就是除R取余,十进制转八或十六进制方法类似转二进制,除以基数取余就行了,比如转八进制就除8,转十六进制就除16.
二进制和八进制、十六进制之间转换采用的是分组转换法,因为2、8、16之间是存在幂的关系的.所以,二级制转八进制,以小数点为中心向两边(二进制小数也可以转为八进制小数)分组,每3位为一组,因为2的3次方=8,然后将各组直接写成相应的八进制数就可以了(3位二进制数最大是7,不会超过8).转十六进制类似,只是这时候需要每4位分一组.反过来,八进制、十六进制转二进制就简单了,只要把每一位都写成二进制数就行了.八进制和十六进制之间一般借助二进制来转换,不容易出错.
十进制小数转R进制小数,方法为乘R取整,每次乘以相应之后基数后取结果的整数部分即可.需要注意的是并非所有的十进制小数都能完全转化为R进制小数,这时就需要取近似值.
二进制(包括小数)转为十进制数时,采用乘权相加法,每一位数乘以相应位的权制然后相加就ok.比如1101.101这个数,以小数点为中心,向左每位权值分别为1、2、4、8,向右每位为0.5、0.25、0.125(也就是二分之一、四分之一、八分之一).正数1101.101B=1*1+0*2+1*4+1*8(整数部分)+1*0.5+0*0.25+1*0.125(小数部分)=13.625D.八进制、十六进制转十进制方法类似,只要你搞清楚每位的权值就行了.本回答被网友采纳