Convert a Number to Hexadecimal
题意
给一个十进制的数,输出它的十六进制的表示方法,负数的话则输出它的补码形式。
解法
主要是关注下负数的表示形式,这里有篇很好的文章解释了为什么负数的补码就是正数补码的取反加一,总的来说,减去一个数a,就等于加上2^n-a,其中n为a二进制的位数,所以这道题目当输入x小于0的时候,取它的2^n-x即可。
代码
|
|
Nothing is too difficult, if you put your heart into it.
给一个十进制的数,输出它的十六进制的表示方法,负数的话则输出它的补码形式。
主要是关注下负数的表示形式,这里有篇很好的文章解释了为什么负数的补码就是正数补码的取反加一,总的来说,减去一个数a,就等于加上2^n-a,其中n为a二进制的位数,所以这道题目当输入x小于0的时候,取它的2^n-x即可。
|
|