二进制,相反数问题?

2025-01-04 09:17:13
推荐回答(5个)
回答1:

没有对不对, 分析一下就知道了
有个知识点:在一般的表示语言中, 负数是用补码来表示的

7 = 0000,0000,0000,0000,0000,0000,0000,0111
-7 原码: 1000,0000,0000,0000,0000,0000,0000,0111
反码: 1111,1111,1111,1111,1111,1111,1111,1000
补码: 反码+1 = 1111,1111,1111,1111,1111,1111,1111,1001

7 = 0000,0000,0000,0000,0000,0000,0000,0111
-7 =1111,1111,1111,1111,1111,1111,1111,1001
相加=0000,0000,0000,0000,0000,0000,0000,0000

我估计你的书说的是用反码来表示负数吧!

看到结果了吧? 这就是为什么要用补码来表示负数? 0和-0的表示都一样的
不会出现
1111,1111,1111,1111,1111,1111,1111,1111
这样的表示法

回答2:

一个整数和它的相反数之和为111……111(二进制),这个对吗?
不应该等于0吗?谢谢。
-------------
它说的不对。
应该说:
一个整数的补码,与它的相反数的补码,之和为“模”。
证明如下:
求负数补码的公式是:负数X的补码 = 模 - |负数X|
移相,就有:    负数X的补码 + |负数X| = 模
其中 |负数X|,是 X 的绝对值,是个正数。
绝对值是正数,也就是“负数X”相反的数。
绝对值是正数,也就是正数的补码。
所以,就是: 负数X的补码 + X相反数的补码 = 模。

回答3:

111...111不就是0的反码吗?还是0
参见百科关于相反数的定义

回答4:

对的, 比如7(0111) 和 -7(1000)((-7的反码)1111 + 1)= 1000(补码)

所以7+(-1) = 7|(-7) = 1111

回答5:

晕这东西已经很久没碰了,帮你顶一个