进制转换

数制

(1)基数

所谓基数就是在某种数制中,允许选用的基本数字符号的个数。例如:R进制的基数为R,能用到的数字符号个数为R个,即0、1、2……R-1,每个数位满R之后就向高位进一,也就是“逢R进1”。下表中列出常用的几种进位记数制。

进制记数原则基本符号
二进制逢二进一0,1
八进制逢八进一0,1,2,3,4,5,6,7
十进制逢十进一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
  注:十六进制的数符A~F分别对应十进制的10~15

(2)位权
一个数字符号处在数的不同位时,它所代表的数值是不同的。每个数字符号所代表的数值等于该数字符号值乘以一个与该数码所在位置有关的常数,这个常数就叫位权,也称权。位权的大小是以基数为底,数字符号所在位置的序号为指数的整数次幂。由此,可以得到权的性质:
①无论何种R进制(R>=2)数,其整数部分最低位的权都是1。
②进制数相邻两位权的比值为R,即左边一位的权是其相邻的右边一位的权的R倍。
利用上述两个性质可以很快地把一个R进制数各位的权写出来,进而方便转换为十进制。

二进制

二进制数是由0和1两个数字字符构成,特点是“逢二进一,借一当二”。数字中,各位的权都是2的整数次幂,使用技术及位权可以将二进制数展开成多项式和的表达式,展开后所得结果就是该二进制所对应的十进制的值。

  例:使用权位和基数展开二进制数10100.01B

10100.01 B = 1 ∗ 2 4 + 0 ∗ 2 3 + 1 ∗ 2 2 + 0 ∗ 2 1 + 0 ∗ 2 0 + 0 ∗ 2 − 1 + 1 ∗ 2 − 2 = 20.25 10100.01B=1*2^4 + 0*2^3+1*2^2+0*2^1+0*2^0+0*2^-1+1*2^-2=20.25 10100.01B=124+023+122+021+020+021+122=20.25

八进制

计算机内部使用二进制,例如十进制数9999,用二进制表示为10011100001111.这种表示形式不便于书写和记忆,因此,计算机使用者常用十六进制或八进制来弥补这个缺点。值得注意的是:十六进制和八进制绝对不是计算机内部表示数值的方法,仅仅是书写和叙述时采用的一种形式。
八进制采用0~7共8个数字符号来表示所有的数,其特点是“逢八进一”。各位的权都是8的整数次幂,使用基数及权位可以将八进制展开成多项式和的表达式,展开后所得结果就是该八进制所对应的十进制的值。

   例:使用基数及权位展开八进制数147.2Q。 

147.2 Q = 1 ∗ 8 2 + 4 ∗ 8 1 + 7 ∗ 8 0 + 2 ∗ 8 − 1 = 103.25 147.2Q=1*8^2+4*8^1+7*8^0+2*8^-1=103.25 147.2Q=182+481+780+281=103.25

二进制、八进制、十六进制数转换成十进制数

二进制、八进制、十六进制数转换成十进制数时,只要按权展开即可。

例如:将二进制1110.11转换成十进制

1110.11 = 1 ∗ 2 3 + 1 ∗ 2 2 + 1 ∗ 2 1 + 0 ∗ 2 0 + 1 ∗ 2 − 1 + 1 ∗ 2 − 2 = 8 + 4 + 2 + 0.5 + 0.25 = 14.75 1110.11=1*2^3+1*2^2+1*2^1+0*2^0+1*2^-1+1*2^-2 =8+4+2+0.5+0.25=14.75 1110.11=123+122+121+020+121+122=8+4+2+0.5+0.25=14.75

例如:将八进制35.54转换成十进制

35.54 = 3 ∗ 8 1 + 5 ∗ 8 0 + 5 ∗ 8 − 1 + 4 ∗ 8 − 2 = 24 + 5 + 0.625 + 0.0625 = 29.6875 35.54=3*8^1+5*8^0+5*8^-1+4*8^-2 =24+5+0.625+0.0625=29.6875 35.54=381+580+581+482=24+5+0.625+0.0625=29.6875

例如:将十六进制A3C转换成十进制

A 3 C = 10 ∗ 1 6 2 + 3 ∗ 1 6 1 + 12 ∗ 1 6 0 = 2560 + 48 + 12 = 2620 A3C=10*16^2+3*16^1+12*16^0 =2560+48+12=2620 A3C=10162+3161+12160=2560+48+12=2620

十进制转换成二进制、八进制和十六进制

方法一:
将十进制转换成二进制、八进制和十六进制时,需要将整数部分和小数部分分别转换
①整数部分:十进制的整数部分的转换规则是“除基取余法”,即将十进制数除以基数R,得到一个商数和一个余数;再将其商数除以R,又得到一个商数和一个余数;以此类推,直到商数等于零为止。每次所得的余数就是结果数据中各位的数字。其中第一次得到的余数作为转换后的最低位,最后一次得到的余数作为转换后的最高位。

   例:将十进制整数25转换成二进制

在这里插入图片描述
所以十进制整数25的二进制数为11001

②小数部分:十进制小数部分的转换规则是“乘基取整法”。具体方法是用基数R乘十进制纯小数,将其乘积的整数部分去掉,余下的纯小数部分再与R相乘;如此继续下去,直到余下的纯小数为0或满足所要求的精度为止。最后,每次乘积的整数部分作为结果数据中各位的数字,每一次得到的数字作为转换后的最高位,最后一次得到的数字作为转换后的最低位。

 例:将十进制小数0.6875转换成二进制小数
 0.6875*2=1.3750                整数部分为1
 0.3750*2=0.7500                整数部分为0(去整数再乘2)
 0.7500*2=1.5000                整数部分为1(去整数再乘2)
 0.5000*2=1.0000                整数部分为1(去整数再乘2)
                                余下的纯小数为0,转换结束
  十进制小数0.6875转换为二进制表示结果为0.1011                                

方法二:
将十进制转换为二进制,将十进制数分解为好几项以2为底的任意指数的整数次幂。

 例:将十进制333转换为二进制数
 333=256+64+8+4+1=2^8+2^6+2^3+2^0
              可以得到二进制数为:101001001
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值