num must be between 0 and 255.
String s = Integer.toHexString(num);
return s.length() == 1?s:"0"+s;

解决方案 »

  1.   

    /*
     * @(#) Test.java
     * Create By James Fancy
     */
    package jamesfancy;public class Test {
        public static void main(String[] args) {
            char[] buffer = new char[2];
            // 随机产生一个 0 - 255 的数
            byte n = (byte) (((int) (Math.random() * 0xFF)) & 0xFF);
            System.out.println("n = " + n);
            
            // 取头4位生成一个十六进制数字
            buffer[0] = Character.forDigit((n >>> 4) & 0x0F, 16);
            // 取末4位生成一个十六进制数字
            buffer[1] = Character.forDigit(n & 0x0F, 16);
            
            // 将两个十六进制数字凑成字符串,转换为大写输出
            System.out.println(new String(buffer).toUpperCase());
       }
    }