🌕🌗 405. 数字转换为十六进制数

吞佛童子2022年10月10日
  • algorithm
  • Number
  • 找规律
小于 1 分钟

🌕🌗 405. 数字转换为十六进制数

难度: 🌕🌗

问题描述

img_1.png


解法

class Solution {
    public String toHex(int num) {
        // 思路:
        // 分组运算 - 一个 16 进制数可以用 4 个二进制数表示,因此分为 最多 8 组运算
        // 由于负数本身也满足二进制转换要求,本身就是补码形式存在,因此正负数转换相同
        if(num == 0) {
            return "0";
        }
        StringBuilder sb = new StringBuilder();
        while(num != 0) {
            int cur = (num & 15);
            if(cur <= 9) {
                char tmp = (char)('0' + cur);
                sb.insert(0, tmp);
            } else {
                char tmp = (char)('a' + cur - 10);
                sb.insert(0, tmp);
            }
            num >>>= 4;
        }
        return sb.toString();
    }
}

输出

img.png

上次编辑于: 2022/10/10 下午8:43:48
贡献者: liuxianzhishou