首页 > 其他 > 详细

10进制转16进制自动补全8位 并高低位转换

时间:2021-04-01 18:25:06      阅读:39      评论:0      收藏:0      [点我收藏+]
/**
* @program: chargingpile
* @description: 转成16进制卡号的工具类
* @author: Mr.ch
* @create: 2020-08-31
**/
public class HexUtils {

/**
* 解密后的卡号需要高低位转换(不足8位前面补0)
* 才能得到需要的16进制卡号
* @param serialNum
* @return
*/
public static String getHexCardNum(String serialNum) {
return reverse(hex(Integer.parseInt(serialNum)));
}

/**
* 10进制转16进制
* @param serialNum
* @return
*/
public static String hex(int serialNum) {
return String.format("%08x", Integer.valueOf(serialNum));
}

/**
* 十六进制字符串高低位转换
* @param hex
* @return
*/
public static String reverse( String hex) {
final char[] charArray = hex.toCharArray();
final int length = charArray.length;
final int times = length / 2;
for (int c1i = 0; c1i < times; c1i += 2) {
final int c2i = c1i + 1;
final char c1 = charArray[c1i];
final char c2 = charArray[c2i];
final int c3i = length - c1i - 2;
final int c4i = length - c1i - 1;
charArray[c1i] = charArray[c3i];
charArray[c2i] = charArray[c4i];
charArray[c3i] = c1;
charArray[c4i] = c2;
}
return new String(charArray).toUpperCase();
}
}

使用方法

 @Test
    public void testGetStr() {
        //1000 转16进制为 3e8 
        // 补位为000003e8
        //高低位转换 E8030000
         System.out.println(getHexCardNum("1000"));
    }

 

————————————————
版权声明:本文为CSDN博主「污青」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44851436/article/details/108348195

10进制转16进制自动补全8位 并高低位转换

原文:https://www.cnblogs.com/dk2557/p/14606558.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!