将十六进制数转换为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的补码。的主要内容,如果未能解决你的问题,请参考以下文章