关于android 的10进制转16进制高位在前低位在后,不足位数补0处理方法

Posted Morven

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于android 的10进制转16进制高位在前低位在后,不足位数补0处理方法相关的知识,希望对你有一定的参考价值。

昨天在写安卓程序时有一个16进制的代码组装要求

要求: 将一个十进制的数值转为16进制.然后高位在前低位在后,并且不足8个字符的在后面补0

本来想着用以下代码处理

int strtotal = 149936;
String strHex2 = String.format("%08x", strtotal).toUpperCase();//高位补0

得到的值是000249B0

明显是不符合的只能另外写一个转换的方法

看代码,先写一个转换的方法

 /**
     * 十进制数据转换为16进制并高位在前,低位在后
     * @param num 十进制数据
     * @return
     */
    public static String numToHex(int num) {
        String hex = "";
        while(num != 0) {
            String h = Integer.toString(num & 0xff, 16);
            if((h.length() & 0x01) == 1)
                h = '0' + h;
            hex = hex + h;
            num = num >> 8;
        }
        return hex;
    }

得到的结果为:b04902

好.还差最后一步.位数不足补0,调用以下代码处理一下吧

    /**
     * 字符串补0
     * @param str
     * @param strLength
     * @return
     */
    public static String addZeroForNum(String str, int strLength)
    {
        int strLen =str.length();
            if(strLen<strLength){
            while(strLen<strLength){
                StringBuffer sb=new StringBuffer();
                //sb.append("0").append(str);// 左补0
                sb.append(str).append("0");//右补0
                str = sb.toString();
                strLen = str.length();
            }
        }
        str = String.format(str).toUpperCase();//转为大写
        return str;
    }

最终结果得到:B0490200

完成.

以上是关于关于android 的10进制转16进制高位在前低位在后,不足位数补0处理方法的主要内容,如果未能解决你的问题,请参考以下文章

关于android 的10进制转16进制高位在前低位在后,不足位数补0处理方法

android 常用的代码

16进制转10

java中怎么将一个int转成高位在前的byte

C语言 对字节的高位和低位进行互换!

C语言调用函数编写把十进制整数n转换成十六进制怎么编程?