我是靠谱客的博主 完美老虎,最近开发中收集的这篇文章主要介绍java基础-十进制转十六进制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

需求:

从序号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基础-十进制转十六进制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部