计算机中的数制转换的简便方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机中的数制转换的简便方法
在现行的高中教材中,将计算机中的二进制数转换成转换为十进制数是采用按权展开求和法,笔者在多年的教学生涯中,从用按权展开求和将二进制数转换为十进制数的方法中得到启示,从而得到了数制间相互转换的简便方法。
下面就用一些例子来说明,我在教学中进行数制间转换的方法:
1、二进制数转换成十进制数:
教材中的方法是“按权展开求和”
例1:(1011.01)2 =(1×25+1×24+1×23+0×22+1×21+1×20+0×2-1+1×2-2)10=(32+16+8+0+2+1+0+0.25)10=(59.25)10
因为二进制数只的两个数码:0、1 ,并且:0乘任何数都为0,1乘任何不为零的数都得原数。于是我就想到:可将“按权展开求和”变形,用珠算中在算盘上标示个、十、百、千、万的方法,先在演算纸上写上二进制数每个位的权值,再将二制数每位的数码写在相应的位的权值下面。将数码为1的位的权值相加,就得到转换成的十进制数。
将例1中的二进制数(111011.01)2转换为十进制数的方法如下:
第一横排写位的权值:3216 8 4 2 1.0.50.25
第二横排写相应数码:1 1 1 0 1 1. 01
将数码为1的位的权值相加:32+16+8+2+1+0.25=59.25
2、十进制数转换成二进制数:
教材中是分两个部分转换,整数部分:除2取余数,直到商为0,得到的余
数即为二进数各位的数码,余数从逆序排列(反序排列)。小数部分:乘2取整数,得到的整数即为二进数各位的数码,整数从顺序排列。这样转换演算过程相当麻烦。
既然能用在位的权值下写二进制数的数码,再将数码为1的位的权值相加,能得到转换成的十进制数。相反,我们也可以用十进制数来配相应的位的权值,将十进制数转换成二进制数:在演算纸上的第一横排写上二进制数的位的权值,写到最高位的权值比十进制数稍大,然后,用此十进制数去配最大的小于或等于此十进制数的二进制数位的权值,并在第二横排在此权值下写数码1,然后用此十进制数减去所配的权值得到所剩余数,所剩余数又用以上同样的方法去配二进制数位的权值,如此重复,直到余数为0,在所有未配得数码1的位的权值下写数码0,这样得到的从左到右的数码系列既为所要转换成的二进制数。
将例1中的十进制数59.25转换为二进制数的方法如下:
第一横排写位的权值:6432168421.0.50.25
在第二横排对应于第一横排32位置下写数码1,余数为:59.25-32=27.25
在第二横排对应于第一横排16位置下写数码1,余数为:27.25-16=11.25
在第二横排对应于第一横排8位置下写数码1,余数为:11.25-8=3.25
在第二横排对应于第一横排2位置下写数码1,余数为:3.25-2=1.25
在第二横排对应于第一横排1位置下写数码1,余数为:1.25-1=0.25
在第二横排对应于第一横排0.25位置下写数码1,余数为:0.25-0.25=0
在第二横排对应于第一横排4、0.5的位置下写数码0
即:3216 8 4 2 1 .0.50.25
1 1 1 0 1 1 .0 1
得到从左到右的二进制数数码系列为: 1 1 1 0 1 1 . 0 1
所以:(59.25)10=(111011.01)2
3、二进制数与八进制数的相互转换:
有了以上二进制数与十进制数相互转换的方法,二进制数与八进制数的转换变得容易。因为1位八进制数对应3位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每3位分成一组,最左最右端分组不足3 位时,可用0补足,各组用对应的1位八进制数码表示,所得到的从左到右的八进制数码系列,即为转换成的八进制数值。
用前面的十进制数转换为二进制数的方法,很容易得出每个八进制数码对应的三位二进制数码。如:八进制数码5对应的三位二进制数码是:
在演算纸上的第一横排写上三位进制数的位的权值:421
在第二横排对应于第一横排4位置下写数码1,余数为:5-4=1
在第二横排对应于第一横排1位置下写数码1,余数为:1-1=0
在第二横排对应于第一横排2位置下写数码0
即:421
101
所以,八进制数码5对应的三位二进制数码:101
这样,使二进制数转换为对应的八进制数变得简便。
例2:将(1101111.11001)2 转换成对应的八进制数。
解:
所以,(1101111.11001)2=(157.62)8
将八进制数转换为二进制数时,只需将每位八进制数对应转换成三位二进制数,所得到的从左到右的二进制数码系列去掉最左最右端的0,即为转换成的二进制数。
例3:将八进制的352.16转换成二进制数:
352.16
011101 010 .001110
即:(352.16)8 =(11101010.00111)2
4、二进制数与十六进制数的相互转换
二进制数与十六进制数的相互转换与二进制数与八进制数的相互转换相类似,只是1 位十六进制数对应 4 位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每 4 位分成一组,最左最右端分组不足 4 位时,可用0 补足,各组用对应的 1 位十六进制数码表示,所得到的从左到右的十六进制数码系列,即为转换成的十六进制数值。
同样用前面的十进制转换为二进制的方法,推出每个十六进制数对应的四位二进制数码。如:十六进制数D对应的四位二进制数码:在演算纸上的第一横排写上四位进制数的位的权值:8421;在第二横排对应于第一横排8位置下写数码1,余数为:13-8=5;在第二横排对应于第一横排4位置下写数码1,余数为: