这些16位字中的每一个都可以解释为2的补码数或无符号数。找到与每种解释相对应的十进制整数。
A)00 A3
B)B6 4A
好吧,我对这里的措辞感到有些困惑。十进制表示法中A = 163
和B = 46,666
,但是是无符号数还是结果2的补码?我相信这是一个未签名的号码。为了得到2的补码,我只需要把它变成二进制形式吗?如果可能的话,我很乐意看到一个例子。
答案 0 :(得分:1)
十六进制数0x876可以被认为是十进制的正数2166。但是如果你认为它是一个有符号的12位数字,那么msbit就会被设置,所以它是负数。要确定十进制数是多少,您需要执行反转并添加一个。反转产生0x789,添加一个0x78A,即1930.因此,作为负数(二进制补码)的十进制表示为-1930。
更简单的是十二位数0xFFF,无符号即4095,但签名反转为0x000加一个0x001,-1十进制。
将这些知识应用于问题中的数字。
答案 1 :(得分:1)
这是他所得到的。
你对商业" ...A=163 B=46,666 in decimal notation...
"
这是无符号16位解释。
如果这些是签名 16位整数,则第一个仍为163
,而第二个为negative 18,870
他们得到的是最高位是符号位,它提醒您这可能是负数。
所以,答案是......
A=163, B=46,666
A=163, B=-18,870
(注意,最后一个是否定的)如果您需要我详细了解此问题,我将编辑此答案并向您展示在两个补码中执行所有更改操作步骤的过程。事实上,我刚刚在THIS ANSWER这里做了三个小时。 (如果需要,点击它)
答案 2 :(得分:0)
16位:0000 0000 0000 0000
0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
1010 = A
1011 = B
1100 = C
1101 = D
1110 = E
1111 = F
答案 3 :(得分:0)
让我们从基础开始:
二进制补码运算意味着反转一个二进制数并加1。
如果二进制数的最高位为1,则数字为负数,以二进制补码表示法
如果二进制数的最高位为0,则数字为正数,以二进制补码表示法
对已经采用二进制补码表示法的二进制数使用二进制补码运算会产生一个等于其相反符号的值。
因此,我们可以将十进制A = 163
和B = 46,666
推断为无符号数。但是,有符号数字(二进制补码表示法)更难转换。在此处A = 163
和B = -18,870
。转换为二进制时,您可以看到......
A = 0000 0000 1010 0011
B = 1011 0110 0100 1010
如您所见,A
的最高位为0,B
的最高位为1. A
中的最高位为0,因此我们只需转换为无符号数字。由于B
的最高位为1,我们需要使用二进制补码运算来获得二进制数的正数,转换为十进制,并在十进制数前加一个负号。
转换过程如下:
1011 0110 0100 1010
...转化
0100 1001 1011 0101
添加1 ...
0100 1001 1011 0110
转换为十进制......
18870
前置负号...
-18870
注意:这是将带符号二进制数转换为十进制数的实用方法。还有其他一些可以在互联网上找到。
希望这有帮助。
答案 4 :(得分:0)
A)00 A3
B)B6 4A
A的十六进制形式是00 A3
1s补充:
F F F F
- 0 0 A 3
=======
F F 5 C
两个补充
F F 5 C
+ 1
=======
F F 5 D
b的十六进制形式是B64A
1s补充
F F F F
- B 6 4 A
=======
4 9 B 5
两个补充
4 9 B 5
+ 1
=======
4 9 B 6