知道补码怎么求真值吗?
补码求真值的步骤如下:
如果补码的最高位是0, 那么原码就是补码, 那么真值就是对应的十进制的值。
如果补码的最高位是1, 那么原码就是补码的反码+1, 真值就是对应的十进制的值的相反数。
如补码是 0101, 那么真值就是 4 + 1 = 5。
如补码是1010, 那么反码就是0101, +1以后是0110, 所以对应的十进制是4+2=6, 所以真值就是-6。
补码(two's complement) 的介绍如下:
1、在计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
2、补码与原码的转换过程几乎是相同的。
你就直接进行【数 制 转 换】即可。
但是,要注意:首位是负数。
--------------
已知补码是:1101 0101。
首位 1,既代表负号,也代表-128。
数值位之和:64 + 16 + 4 + 1 = +85。
加在一起,就是真值:-43。
--------------
另一个补码是:0101 0101。
首位 0,就是代表 0。
数值位之和:64 + 16 + 4 + 1 = +85。
加在一起,就是真值:0 + 85 = +85。
--------------
由补码求真值,十分简便。
并不用琢磨“原码反码取反加一符号位不变”。
老外算术不灵,才需要弄哪些骚操作。
知道补码怎么求真值?
----------------
由补码换算到十进制数,是极其简单的事。
你只需记住:【补码首位的权,是负数】。
一般的八位二进制数,各个位的权是: 128、64、32、16、8、4、2、1;
如果是八位的补码,各个位的权则是:-128、64、32、16、8、4、2、1。
假如,有一个补码是:1110 0001,
它代表的十进制数是:-128 + 64 + 32 + 1 = -31。
又如,另一个补码是:0110 0001,
它代表的十进制数是:0 + 64 + 32 + 1 = +97。
你看吧,仅仅使用【进制转换】,不就完事了!
所谓的:机器数真值符号位原码反码取反加一符号位不变模符号位也参加运算 ... ,
都是【忽悠】!
这些计算机大佬,都是在【卖拐】。