convert a number to Hexadecimal[重要]

convert a number to Hexadecimal[重要]_第1张图片

我自己的solution, obviously, 没有考虑负数的情况。但是我已经尽力了T^T  

如果硬要我做负数的话,比如-1, 我会直接求1的 hex。 然后invert, +1. 但是hex怎么invert T^T。。。

convert a number to Hexadecimal[重要]_第2张图片

这个答案屌。。。直接把hex先看做binary来处理。收到灵感启发,对于负数 ,我觉得可以先convert 成binary,然后invert,然后+1。 然后以4个bit 4个bit的转换。 

傻逼啊。。。负数本身在binary里就是已经2's compliment了. 主要是num % 16 的问题。



convert a number to Hexadecimal[重要]_第3张图片

补充知识:>>>


convert a number to Hexadecimal[重要]_第4张图片


改进版代码

convert a number to Hexadecimal[重要]_第5张图片
convert a number to Hexadecimal[重要]_第6张图片


附:

binary to decimal:

我一开始是想能不能right shift数字,把1101 最左边先shift出来,乘2^3。 再shift后面的。发现似乎并不行。不过换一个方向也是一样的,这个一时间脑袋秀逗也可能没转过来。

convert a number to Hexadecimal[重要]_第7张图片

你可能感兴趣的:(convert a number to Hexadecimal[重要])