任意进制转化
原题在这里:
本来是个水题,但是因为负数取补码计算就学到了东西。
code:
class Solution { string ch = "0123456789abcdef"; string mk(long x) { if (x < 1) return ""; return mk(x / 16) + ch[x % 16]; } public: string toHex(int num) { //way1 long x; if (num > 0) x = num; else x = pow(2, 32) + num; //way2 // unsigned int x=num; return num == 0 ? "0" : mk(x); } };
关键在于取补码,这里单独做一篇文章说明计算机的计算。
【Over】

浙公网安备 33010602011771号