数值转换原理及浮点数结构详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章数制转换原理
一、数制是什么?
数制又称计数制,就是我们用来计数的规则。
数制包含两个东西,一个是“计数符号”,另一个是“进位规则”。
“计数符号”是我们用来表示数的基本符号,常见的计数符号有阿拉伯数字符号,中文数字符号,罗马数字符号等。举例,阿拉伯数字符号有“0123456789”共9个符号,中文数字符号有“零一二三四五六七八九十百千万亿兆”,罗马数字符号有“I V X L C D M”。当然我们最常见的是阿拉伯数字符号。
“进位规则”就是我们在数数的过程中以多少量为一个进位,也通常说的“逢几进一”,我们日常最长用的是“逢十进一”,这就是“十进制”;我们其实也经常用到其他的进制,比如我们看时间时用的是“逢六十进一”,这是“六十进制”;我们买啤酒时用的“几打”就是“逢十二进一”,这是“十二进制”;还有过去我们常说“半斤八两”,“斤”就是十六进制的。可见,其他的进制在我们的日常生活中也是随处可见的。
将“计数符号”和“进位规则”结合起来就是数制了。比如阿拉伯数字的用法就是用计数符号“1”表示数量一,用“2”表示数量二,这样一直到“9”。“23”表示“二个十加上三”。
二、十进制阿拉伯数字的含义
我们平时用的类似于“12”、“233”、“5432”这样的数字用的多了,心中也明白到底这些数字表示多少的量,“12”表示“1个十加2”,“233”表示“2个百加3个十加2”,“5432”表示“5个千加4个百加3个十加2”,用数学公式来表示就是
(a n a n-1...a2a1a0)10=a n X10n+a n-1X10n-1+...+a2X102+a1X101+a0X100
其中a n a n-1...a2a1a0表示的是数字符号,()10表示是10进制数,例如十进制数6789
(6789)10=6X103+7X102+8X101+9X100
三、任意进制数字的表示
套用十进制数字的表示方法,我们可以写出任意进制数字的表示方法。下面介绍其他常用的几种进制的表示方法。
二进制:我们的“计数符号”通常取“01”共二个字符,“进位规则”为“逢二进一”,用数学公式来表示就是
(a n a n-1...a2a1a0)2=a n X2n+a n-1X2n-1+...+a2X22+a1X21+a0X20
例如:
(1011)2=1X23+0X22+1X21+1X20(结果等于十进制数字11)
八进制:我们的“计数符号”通常取“01234567”共八个字符,“进位规则”为“逢八进一”,用数学公式来表示就是
(a n a n-1...a2a1a0)8=a n X8n+a n-1X8n-1+...+a2X82+a1X81+a0X80
例如:
(7654)8=7X83+6X82+5X81+4X80(结果等于十进制数字4012)
十六进制:我们的“计数符号”通常取“0123456789ABCDEF”共十六个字符,“进位规则”为“逢十六进一”,用数学公式来表示就是
(a n a n-1...a2a1a0)16=a n X16n+a n-1X16n-1+...+a2X162+a1X161+a0X160
例如:
(F2E9)16=FX163+2X162+EX161+9X160(结果等于十进制数字62185)
任意R进制:我们的计数符号取“b0b1b2b3...b R-2b R-1”共R个字符,
“进位规则”为“逢M进一”,用数学公式来表示就是
(a n a n-1...a2a1a0)R=a n XR n+a n-1XR n-1+...+a2XR2+a1XR1+a0XR0
我们称这里的R为“基数”,就是多少进制的意思。
举例,我们可以设计一个4进制,即基数R为4,但是我们用符号“e”来表示数量四,计数符号取“abcd”共4个字符,“进位规则”为“逢四进一”,其中a表示数量零,b表示数量一,c表示数量二,d表示数量三,用数学公式来表示就是:
(a n a n-1...a2a1a0)e=a n Xe n+a n-b Xe n-b+...+a c Xe c+a b Xe b+a a Xe a
那么数(dbac)e=dXe d+bXe c+aXe b+cXe a(结果等于十进制数210)
这么取“计数符号”总是感觉不习惯,我们取通常的计数符号“0123”,计数取符号“4”就习惯了,以上的4进制数(dbac)e改为(3102)4,则有
(3102)4=3X43+1X42+0X41+2X40(结果等于十进制数210)
从此例可以看到,计数符号是为了表示数量的,即使你用符号“0”来表示数量六,用符号“2”表示数量零,也是可以的。用来表示基数的符号也是任意的,只要你定义它表示的数量就可以了。当然这与我们的习惯不符,纯粹是自找麻烦。应该用符号“0”表示数量零,符号“2”表示数量二,这样大家也都容易理解。
四、数制之间的转换
我们先来看十进制向任意进制的转换。为了容易理解,我们的计数符号取阿拉伯数字,如果超过数字“9”的话用“ABCDEFG.....”来表示,基数就直接用10进制的阿拉伯数字表示,以方便阅读。
先看十进制向二进制的转换,我们先观察前面提到的二进制数表示的数学
公式
(a n a n-1...a2a1a0)2=a n X2n+a n-1X2n-1+...+a2X22+a1X21+a0X20
我假设这里这个数等于十进制数y,(比如说y为123或654等等,是一个用
10进制表示的数),那么有
a n X2n+a n-1X2n-1+...+a2X22+a1X21+a0X20 =(y)10
现在我们对这个等式两边同时不断除以二,我们知道既然他们的数量相等,除以二后的结果也应该相等,只不过左边是用二进制表示的,右边是用十进制表示的罢了。
左边二进制数不断地除以二取出余数右边十进制数不断地除以二取出余数
被除数除
数余数被除数除
数
余数
a n X2n+a n-1X2n-1+...+a2X 22+a1X21+a0X20 2 a0y 2 值也应该等于
二进制数a0
a n X2n-1+a n-1X2n-2+...+a2 X21+a1X202 a1y除以2的商 2 值也应该等于
二进制数a1
第n-1次除法
a n X21+a n-1X20 2 a n-1太长了不写了,反正是
十进制的数其值应等
于二进制数
a n X21+a n-1X20
2 a n-1
第n次除法
a n X20 2 a n-1太长了不写了,反正是
十进制的数其值应等
于二进制数a n X20
2 a n
有看过十进制转二进制的书的同学会发现,右边的表格就是用“除2取余法”
求二进制数的过程,其实那个方法就是根据我这张表来的。按照表格右边的除法过程,将十进制数不停的除以2取余数,再将每次的余数由右向左排列成a n a n-1...a2a1a0就是这个十进制数对应的二进制表示了。
同样的,我们可以取十进制数向二进制转换的方法,结合公式
(a n a n-1...a2a1a0)R=a n XR n+a n-1XR n-1+...+a2XR2+a1XR1+a0XR0
我们可以知道将十进制数向任意的基数为R的进制的数转换的方法就是将10进制数不停的“除基取余”,经过n次除法后(0~n共n+1个数需n次除法),然后将余数由右向左排列就得到了对应的R进制数(a n a n-1...a2a1a0)R。
下面举个例子来说明
(25)=?