数字转换为十六进制数

题目链接

思路:

  • 每次取出int数中的后四位,转换为对应的十六进制数;
  • 向右进行逻辑移位4位——>意思为将刚刚取出四位移出
  • 重复上述操作,直至int的值为全0

补充:
此处是逻辑移位,因为逻辑移位不论是不是补码,原码,都是补0。方便观察是否全部值为0,则可以结束。

代码:

public String toHex(int num) {
    
    
        if (num == 0) return "0";
        char[] ant = "0123456789abcdef".toCharArray();
        StringBuilder sb = new StringBuilder();
        while (num != 0 && sb.length() < 8) {
    
    
            sb.append(ant[num & 0xf]);//num & 0xf 表示int中低四位的二进制数表示的大小
            num >>>= 4;
        }
        return sb.reverse().toString(); //此处需要将StringBuilder里面的字符串反转,因为添加时是从低位开始添加的
    }

猜你喜欢

转载自blog.csdn.net/qq_43665244/article/details/114233077
今日推荐