昨天写Android程序的时候有一个十六进制代码的组装要求
:必须将十进制数字转换为十六进制。 然后,高位在前一位的后面,小于8个字符的位在后面添加0
本打算用以下代码处理
int strtotal=149936; stringstrhex2=string.format(x ),strtotal ).toUpperCase ); //在高位补上0得到的值为000249B0
明显不一致的只能写别的转换方法
看代码,先写下转换的方法
/** *二进制数据转换为十六进制,高位为高位,低位为低位* @param num二进制数据* @ return */publicstaticstringnumtohex (intnum ) { string hex=' ' }; wile (数字!=0) stringh=integer.tostring (num0x ff,16 ); if () h.length ) )0x01 )==1) h='0' h; hex=hex h; num=num 8; } return hex; }所得结果为:b04902
是的,还差一步。 位数小于0。 让我们调用以下代码进行处理
/** *字符串完成0 * @ paramstr * @ param strlength * @ return */publicstaticstringaddzerofornum (stringstr,int strLength ) ints //sb.append('0' ).append ) str; //左补0sb.append(str ).append ) '0); //右补0 str=sb.toString (; strLen=str.length (; }str=string.format(str ).toUpperCase ); //转移到大写的return str; }最终结果得到:B0490200
完成。