十六进制的二进制补码

电器工程 数字逻辑
2022-02-03 03:19:29

如何找到十六进制 F3A1 的二进制补码?

首先我将数字转换为二进制 1111 0011 1010 0001 然后我发现二进制补码 0000 1100 0101 1111 给出的结果是 0C5F,这与书中的答案不同:0A57

我做错了什么?

3个回答

如果您对十六进制有点熟悉,则无需转换为二进制。只需取每个数字的 base-16 补码,然后将结果加 1。所以:
F - F = 0
F - 3 = C
F - A = 5
F - 1 = E

所以你得到0C5E。加 1,结果如下:0C5F。

将 1 翻转为 0,将 0 翻转为 1(即正则补码)。然后加1。

你做错的是对一本书有太多的信心。

但是,从好的方面来说,至少它是某种可能大部分是正确的技术书籍。

对于更快的方法,您还可以将左侧的位翻转到第一个设置位并找出 2s 补码(而不是找到 1ns 然后向其添加 1)

1111 0011 1010 0001将左边的位切换到第一个设置位
0000 1100 0101 1111

如果位模式更改为二进制而不是十六进制,我希望您会喜欢这个:)