概述
需求:
从序号1开始,每次请求加1,并将序号转为十六进制八字节小头字节序。
分析:
初始内容:序号初始值为1
条件:
1.每次请求加1。
2.序号转为十六进制。
3.十六进制规则为八字节小头字节序。小头字节序即低字节在前。
编码
1.将数字序号从十进制转为16进制
/**
* 10进制转16进制 长度为自定义,满足不同的需求, 0填充
* @param serialNum
* @return
* @author wyc
* @date 2022-11-25
*/
public static String toHex(Long serialNum, int length) {
// String.format("%016x", 1) 将1专程16进制,不足的以0补上
return String.format("%0" + length + "x", Long.valueOf(serialNum));
}
关于String.format()的使用在下篇文章整理
2.将十六进制高低位转换
/**
* 十六进制字符串高低位转换
* @param hex
* @return
* @author wyc
* @date 2022-11-25
*/
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();
}
3.调用方法
/**
* 得到十六进制的字符串,可指定需要转换的长度
*
* @param serialNum 串行num
* @return {@link String}
*/
public static String getHexNum(Long serialNum, int length) {
return reverse(hex(serialNum, length));
}
/**
* main测试方法
*
* @param args arg游戏
*/
public static void main(String[] args){
for(long i = 0; i < 20; i++){
System.out.println("十进制:" + i + ",转换后十六进制:" + getHexCardNum(i, 16));
}
}
main方法输出结果:
十进制: 0,转换后十六进制:0000000000000000
十进制: 1,转换后十六进制:0100000000000000
十进制: 2,转换后十六进制:0200000000000000
十进制: 3,转换后十六进制:0300000000000000
十进制: 4,转换后十六进制:0400000000000000
十进制: 5,转换后十六进制:0500000000000000
十进制: 6,转换后十六进制:0600000000000000
十进制: 7,转换后十六进制:0700000000000000
十进制: 8,转换后十六进制:0800000000000000
十进制: 9,转换后十六进制:0900000000000000
十进制:10,转换后十六进制:0A00000000000000
十进制:11,转换后十六进制:0B00000000000000
十进制:12,转换后十六进制:0C00000000000000
十进制:13,转换后十六进制:0D00000000000000
十进制:14,转换后十六进制:0E00000000000000
十进制:15,转换后十六进制:0F00000000000000
十进制:16,转换后十六进制:1000000000000000
十进制:17,转换后十六进制:1100000000000000
十进制:18,转换后十六进制:1200000000000000
十进制:19,转换后十六进制:1300000000000000
最后
以上就是完美老虎为你收集整理的java基础-十进制转十六进制的全部内容,希望文章能够帮你解决java基础-十进制转十六进制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复