将十六进制数转换为其2的补码

我应该用C编写一个程序,将十六进制数转换为2的补码。 例如0000008f到ffffff71

到目前为止,我已经弄清楚了如何打印二进制的2'c补码,但是对我来说,十六进制似乎是一个不同的故事。 关于我应该考虑哪个方向的任何建议?
ap0705122 回答:将十六进制数转换为其2的补码

要计算n位十六进制数字的二进制补码,请执行以下任一操作:

  • 对每个数字进行补码(F交换0,E交换1,依此类推),然后在整个数字上加一个,或者
  • 从(十六进制)1中减去数字后跟n个零。

如果该数字不是十六进制整数,则必须对第一位数进行上述调整:

  • 对于第一种方法,请使用适当的位数对第一位进行补充。例如,对于22位,第一个十六进制数字仅使用两位,因此将0交换为3,将1交换为2,将2交换为1,然后将3交换为0。
  • 对于第二种方法,请从适当的2的幂中减去。例如,对于22位,从(十六进制)400000中减去。
本文链接:https://www.f2er.com/2408211.html

大家都在问