整数与えられ、進数にこの数値を変換するためのアルゴリズムを書きます。負の整数の場合、我々は通常補数算術演算メソッドを使用します。
注意:
HEXすべての文字(AF)は小文字にする必要があります。
16進文字列は、過剰の先行ゼロを含めることはできません。形質転換される数が0の場合、単一の文字が「0」表され、他の場合に、16進文字列は、最初の文字0ではありません。
32ビット符号付き整数の範囲内の所与の数を確保します。
直接変換または16進形式の方法によって提供される任意のデジタルライブラリを使用しません。
例1:
入力:
26
出力:
"1A"
例2:
入力:
-1
出力:
"FFFFFFFF"
【注意】進数に対応し、ビット操作、各4ビットを用いての核となるアイデア。
- 使用し
0xf
得ることは(00 ... 01111B)をnum
4の低。 >>
0の正の数は、最大左右前記算術変位、負左右S.1。- 変位演算は保証していない
num==0
(8以下の16進数に対応する)は、32ビットのintを確保するために必要な、。
文字列を直接文字列の連結を使用します....
string toHex(int num) {
if (num == 0) return "0"; string hex = "0123456789abcdef", ans = ""; while(num && ans.size() < 8){ ans = hex[num & 0xf] + ans; num >>= 4; } return ans; }