- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
整数编码一、非负整数十进制与二进制的相互转化1.十进制到二进制
整数编码
非负整数十进制与二进制的相互转化
十进制到二进制的转化
将十进制非负整数转化为二进制整数(其中)即解方程
()
此方程有唯一解,可按的顺序由下式逐一求出:
并重置直到为止。
二进制到十进制的转化
()
非负整数到定长二进制整数的相互转化
将十进制非负整数转化为定长为n的二进制整数(其中)即解方程
()
此方程有唯一解,可按的顺序由下式逐一求出:
置并重置 。
注意:当时,转化结果截断了。
下文中将此转化函数记为,定义域:,值域:。
其反函数记为,定义域:,值域:,反函数的表达式为:
定长非负整数编码
对非负整数一特定子集进行二进制定长编码,C语言中称为无符号整数,其码字长度称为字长,下记为n。
编码函数f
,定义域为,值域为,以n=3为例的映射关系如下:
0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111
解码函数g
,定义域为,值域为。
运算
算术运算:单目:-、++、――;
双目:+、-、*、/、%;
关系运算:==、!=、、=、、=;
位运算:!、、|、^、、。
以算术运算为例说明:基本运算:+、-、*、/,运算规则为:,其中为相应的限长二进制算术运算,+、-、*可能溢出。
其他算术运算可以基本运算导出,如:
,
以n=3为例:
以n=8为例:
定长整数编码
对整数一特定子集进行二进制定长编码,常见的有以下四种种方案:原码方案、反码方案、补码方案、移码方案等。
定长整数编码:原码方案(Sign-Magnitude System)
编码函数f
,定义域为,值域为,以n=3为例的映射关系如下:
-3 -2 -1 0 1 2 3 -0 0 111 110 101 100 000 001 010 011
解码函数g
,定义域为,值域为,以n=3为例的映射关系如下:
000 001 010 011 100 101 110 111 0 1 2 3 -0 -1 -2 -3
运算
与无符号整数一样可以有算术运算、位运算、关系运算,但运算复杂。
定长整数编码:反码方案(One’s Complement System)
编码函数f
,定义域为,值域为。所谓求反,指将码串逐位0/1互换。
以n=3为例的映射关系如下:
-3 -2 -1 0 1 2 3 -0 0 100 101 110 111 000 001 010 011 解码函数g
,定义域为,值域为,以n=3为例的映射关系如下:
000 001 010 011 100 101 110 111 0 1 2 3 -3 -2 -1 -0
运算
复杂程度有改进。如,加减法时,符号位与数字位可统一处理,具体略
定长整数编码:补码方案(Two’s Complement System)
编码函数f
,定义域为,值域为。
两长度为n的0/1串互补;一个可称为另一个的补;
的补的求法:三个等价公式:各位求反再加或者或者减再各位求反。
快速计算方法:找到最右边的1,右边各位(含最右边的1)不变,左边各位求反。如
以n=3为例的映射关系如下:
-4 -3 -2 -1 0 1 2 3 100 101 110 111 000 001 010 011
解码函数g
定义域为,值域为,以n=3为例的映射关系如下:
000 001 010 011 100 101 110 111 0 1 2 3 -4 -3 -2 -1
运算
算术运算:单目:-、++、――;
双目:+、-、*、/、%;
关系运算:==、!=、、=、、=;
位运算:!、、|、^、、、。
算术运算
-(单目):。
+:,其中为相应的限长二进制加法运算。
-:即。
*:,其中为相应的限长二进制乘法运算。
/:,其中的计算可转化为原码后再计算,计算完成后再转化为补码,
(其中等号右边的为限长二进制除法运算)
%:。
/、%只在一种情况下溢出:,但可能抛出异常:。
乘法可进一步优化,如Booth一位乘、Booth二位乘,除法也可将符号位和数字位统一处理,如恢复余数法、加减交替法。此处略,可另开辟章节专门叙述。
以n=3为例:
以n=8为例:
移位运算
加减溢出判断
通常有三种方法:(1)通过参加运算的两个操作数的符号与结果的符号来判断;(2)单符号位法;(3)双符号位法
注解
“补码”一词在文献中可根据上下文做两种不同的解释:有符号二进制数的一种表示方案或二进制数的一种运算。本文中用“补码表示”和“求补”加以区别
等价的编码函数
定义域为,值域为
其中(定义域:,值域:)由下列过程定义:置并重置。
证明:先证明当时
再证明当时,
。
若,则,
若,则,故,
证毕。
解码函数自然也有多种写法:
定长整数编码
文档评论(0)