算法刷题记录--十进制转十六进制

题目描述:给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。
思路:对于十进制转x进制,需要将该十进制的数除以要转换的进制x(如2、8,16),反向取余数,直到商为0终止。
注意:给定数值为零为负时需要特殊处理

class Solution {
    public String toHex(int _num) {
        long num = _num;
        if (num == 0){
            return "0";
        }
        if(num < 0){
            num = (long)(Math.pow(2, 32) + num);
        }
        StringBuilder s = new StringBuilder();
        while(num != 0){
            long n = num % 16;
            char c = n > 9 ? (char)(n - 10 + 'a') : (char)(n+'0');
            s.append(c);
            num /= 16;
        }
        return s.reverse().toString();
    }
}

你可能感兴趣的:(leetcode,算法,职场和发展)