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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将十六进制数转换为2的补码。相关的知识,希望对你有一定的参考价值。

我想用C语言写一个程序,将十六进制数字转换为2的补码,例如:00008f转换为fffffff71。

到目前为止,我已经搞清楚了如何打印出二进制的2'c补码,但十六进制对我来说似乎是另一回事。

答案

要计算一个n位十六进制数字的二的补码,要么。

  • 补足每一个数字(把0换成F,把1换成E,以此类推) 然后把1加到整个数字上,或者:
  • 从(十六进制)1中减去数字,后面跟着n个零。

如果数字不是十六进制的整数位,则必须对上面的第一位数字做一些调整。

  • 对于第一种方法,用适当的位数来补充第一个数字。例如,22位,第一个十六进制数字只用了2位,所以把0换成3,1换成2,2换成1,3换成0。
  • 第二种方法,从适当的2的幂中减去。例如,对于22位,从(十六进制)400000中减去。

以上是关于将十六进制数转换为2的补码。的主要内容,如果未能解决你的问题,请参考以下文章

2 的十进制数的补码,而不将其转换为二进制形式?

汇编语言第一节课:数制转换,真值和补码

小数的二进制补码

405. 数字转换为十六进制数

405. 数字转换为十六进制数

进制之间的互相转换,进制的原码,反码,补码