【发布时间】:2016-03-07 13:17:17
【问题描述】:
我有一个任务,我需要将 8 位符号幅度数转换为二进制补码,然后将这两个数相加。关于如何做到这一点,我有一个相对好的想法,但是我不知道如何找到一个整数的第八位,以便我可以知道这个数字有什么符号。
总体思路是,如果符号位为 0,则只需返回数字,因为它已经在二进制补码中,如果它是一个,那么我想在使用 ~ 运算符反转所有位之前将其设置为 0,然后添加1.
提前致谢
【问题讨论】:
-
到现在为止,请拿出你的努力。
-
嗯……如果有符号变量的最后一位是 1,那么
x < 0应该是真的……你不必检查具体的位。 -
您可以为此使用
&。0b01111111 & bits,不管怎样,结果的第八位都会设置为 0。 -
"...然后将这两个数字相加" 并表示答案如何?采用哪种格式?二进制补码?
-
您指的是要添加哪两个数字?符号大小和二进制补码格式相同的数字?
标签: c binary twos-complement