任意两数的原码反码补码转换工具之差等于该两数之差的原码反码补码转换工具

下面都以8位为例说明问题即可。

一、原码(-127—127):

二、反码(-127—127):

三、原码反码补码转换工具(-128—127):

四、移码(-126——127):

《通信IC设计(上册)》第1章集成電路设计与HDL本章将简单论述集成电路(IC)的概念与设计原理,并从IC的本质――集成出发讲述IC的3个核心议题:“集成什么”、“如何集荿”、“如何处理集成带来的利弊”。本节为大家介绍原码、反码和原码反码补码转换工具

作者:李庆华来源:机械工业出版社| 16:44

1.4.1.1 原码、反码和原码反码补码转换工具

原码的定义为:一个整数按照绝对值大小转换成的二进制数,称为原码例如00 是 7的32位原码表示。

反码的定義为:将二进制数按位取反所得的新二进制数称为原二进制数的反码。其中取反操作是:原位为1则对应位置取0;原位为0,则对应位置取1例如将00 每一位取反,可得11 因此,11 是00 的反码还需要注意反码是相互的。

原码反码补码转换工具的定义为:将反码加1称为原码反码补碼转换工具也就是说,如果要得到一个数的原码反码补码转换工具就要先得到反码,然后将反码加上1所得数称为原码反码补码转换笁具。例如:00 的反码是11 那么,该数的原码反码补码转换工具为:11 + 1 =

因此-7 在计算机中的表达为11 ,转换为十六进制为0xFFFFFFF9

通过上述表示,可以將原码、反码和原码反码补码转换工具定义如下:①当真值为正时该数的原码、反码和原码反码补码转换工具都是一样的;②当真值为負时,原码的数值位保持原样反码的数值位是原码数值位的各位取反,而原码反码补码转换工具则是反码加1

读者很容易发现,以原码反码补码转换工具形式表示的两个数相加或相减后得到的原码反码补码转换工具数值与两个数的真值相加、减后得到的真值再换算为原码反码补码转换工具是完全一致的例如+7与-7相加为0,而32位原码反码补码转换工具为0x7与0xFFFFFFF9相加结果为0x(33位,需要忽略溢出的***位)即原码反码補码转换工具为0。

在IC设计中同样存在数值的表示问题Verilog-1995版本中没有有符号数的概念,因此在很多情况下对有符号数进行操作时需要首先將其转换为无符号数进行处理,然后再针对符号位单独处理***再转换为有符号数。但在Verilog-2001及以后版本中针对有符号数做了很多的修订,添加了signed类型因此读者在进行计算时,只需要进行signed类型定义即可实现有符号数的操作。而signed类型正是用原码反码补码转换工具形式存储的讀者在查看波形或者在内存读取signed类型数值时,需要注意操作转换

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨論群:


我要回帖

更多关于 原码反码补码转换工具 的文章

 

随机推荐