微机原理有符号数的真值与补码间的转换
微机原理有符号数的真值与补码间的转换
之前上课的时候⼀直没怎么弄清有符号数的真值与补码间怎么转换的,⽼师上课只讲了⼀下公式怎么⽤,但也没详细说是怎么来的,后来我想了⼀下,也差不多弄懂了
表⽰说明:数字后加B表⽰⼆进制,加了H表⽰16进制
这⾥就直接举⼀个例⼦更好说明:
例如有符号数-5,这⾥选择⽤8位⼆进制表⽰(⼀定要弄清⽤要转换的数⽤⼏位⼆进制表⽰,后⾯会提到为什么)
⾸先我们来探讨⼀下有符号数的绝对值与其补码之间有什么关系:
-5的绝对值: |-5| = 5 = 05H(这⾥统⼀⽤16进制,两位⼗六进制表⽰8位⼆进制)
-5的补码:(原码)1000 0101 B --> (反码)1111 1010 B --> (补码)1111 1011 B= FBH
这个时候将绝对值与补码相加,你会发现⼀个很有意思的事:
--------------------------------------------------------- 05H + FBH = 100H
也就可以⼤胆得出:
负75的补码怎么求----------有符号数真值的绝对值 + 其补码 = 1····(若⼲个0,取决于⽤多少位⼆进制表⽰)H
那么,已知有符号数,求其补码就好办了:
--------------------------------------------------------其补码 = 1····H - 有符号数真值的绝对值
没错,不⽤怀疑,求补码就是这么求的,所以,
-5的补码为(8位⼆进制表⽰):100H-05H = FBH
不⽤记公式,就记有符号数真值的绝对值和它补码的关系,在脑海中⼤概推导⼀下就知道怎么来的;
再举⼀个例⼦,求-25的补码,⼀样的 100H - 19H(25的⼗六进制) = E7H
也可以⾃⾏验证⼀下,这⾥就不加验证了
要是已知补码要你求真值,那不也是⼀样的吗,还记得那个关系吗
-
---------有符号数真值的绝对值 + 其补码 = 1····(若⼲个0,取决于⽤多少位⼆进制表⽰)H
-----------------------------------------------------真值 = -(1····H - 其补码)
注意符号⼀定不要漏了!!!,负的,⼀定要在前⾯加上负号!
举个例⼦ 已知补码 FBH,求其真值
⾸先其 绝对值 = 100H - FBH = 05 H
再加负号!!! 真值 = -5 负号不能漏
你只要把这个关系理清楚了,以后就都不会再忘记了

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。