首页 > 其他分享 >16进制字符串转byte

16进制字符串转byte

时间:2023-04-09 09:56:21浏览次数:38  
标签:return 字节 16 hexString bytes byte 进制

 1 public class HexConverUtils {
 2 
 3     /**
 4      * 16进制字符集
 5      */
 6     private static final char HEX_DIGITS[] = {'0', '1', '2', '3', '4', '5',
 7             '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
 8 
 9     /**
10      * 将字节数组转换成16进制字符串
11      *
12      * @param bytes 目标字节数组
13      * @return 转换结果
14      */
15     public static String bytesToHex(byte bytes[]) {
16         return bytesToHex(bytes, 0, bytes.length);
17     }
18 
19     /**
20      * 将字节数组中指定区间的子数组转换成16进制字符串
21      *
22      * @param bytes 目标字节数组
23      * @param start 起始位置(包括该位置)
24      * @param end   结束位置(不包括该位置)
25      * @return 转换结果
26      */
27     public static String bytesToHex(byte bytes[], int start, int end) {
28         StringBuilder sb = new StringBuilder();
29         for (int i = start; i < start + end; i++) {
30             sb.append(byteToHex(bytes[i]));
31         }
32         return sb.toString();
33     }
34 
35     /**
36      * 将单个字节码转换成16进制字符串
37      *
38      * @param bt 目标字节
39      * @return 转换结果
40      */
41     public static String byteToHex(byte bt) {
42         return HEX_DIGITS[(bt & 0xf0) >> 4] + "" + HEX_DIGITS[bt & 0xf];
43     }
44 
45 
46     /**
47      * 将16进制字符串转换成字节数组
48      *
49      * @param hexString 16进制字符串
50      * @return byte[] 字节数组
51      */
52     public static byte[] hexToBytes(String hexString) {
53         if (hexString == null || hexString.equals("")) {
54             return null;
55         }
56         hexString = hexString.toUpperCase();
57         int length = hexString.length() / 2;
58         char[] hexChars = hexString.toCharArray();
59         byte[] d = new byte[length];
60         for (int i = 0; i < length; i++) {
61             int pos = i * 2;
62             d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
63         }
64         return d;
65     }
66 
67 
68     /**
69      * 将字符转换成字节
70      *
71      * @param c 字符
72      * @return byte 字节
73      */
74     private static byte charToByte(char c) {
75         return (byte) "0123456789ABCDEF".indexOf(c);
76     }
77 }

 

标签:return,字节,16,hexString,bytes,byte,进制
From: https://www.cnblogs.com/yangxijun/p/17299859.html

相关文章

  • python 十六进制转换字符
    a=b'\xE6\x88\x91\xE6\x98\xAF\xE8\xAF\xB7\xE6\xB1\x82'print(a.decode('utf-8').encode('utf-8'))print(a.decode('gbk').encode('gbk'))print(a.decode(encoding="utf-8",errors="strict......
  • VGG16模型-tensorflow实现的架构
    importtensorflowastffromtensorflow.keras.modelsimportSequentialfromtensorflow.keras.layersimportInputLayer,Dense,Flatten,Conv2D,MaxPooling2Dfromtensorflow.keras.optimizersimportAdamdefbuild_vgg16(input_shape,num_classes):model......
  • 1626. 无矛盾的最佳球队
    题目链接:1626.无矛盾的最佳球队方法一:子集型回溯+记忆化解题思路先对\(scores\)和\(ages\)数组进行预处理得到\(pair<int,int>a[n]\)数组,\(a[i].first=score[i],a[i].second=ages[i]\),然后进行\(sort\)排序;枚举计算\([i,n-1]\)区间的最大分数\(score_i\)\(=df......
  • 1617. 统计子树中城市之间最大距离
    题目链接:1617.统计子树中城市之间最大距离方法:子集型回溯+判断连通+树的直径解题思路枚举所有可能的子树参考:子集型回溯判断当前的子树是否合法,即当前树是否连通,通过\(dfs\)从某一个节点开始遍历子树,若遍历节点数量不等于子树节点数量,则不连通;计算以每一个子树节点为......
  • 1605. 给定行和列的和求可行矩阵
    题目链接:1605.给定行和列的和求可行矩阵方法:贪心解题思路参考:思路?一个动画秒懂!附优化写法(Python/Java/C++/Go)代码classSolution{public:vector<vector<int>>restoreMatrix(vector<int>&rowSum,vector<int>&colSum){intm=rowSum.size(),n=colS......
  • 1615. 最大网络秩
    题目链接:1615.最大网络秩方法:暴力求解解题思路初始化每个节点邻接点的数量以及用矩阵保存边的信息,暴力枚举节点对,取其中秩的最大值。代码classSolution{public:intmaximalNetworkRank(intn,vector<vector<int>>&roads){vector<vector<int>>g(n,vect......
  • 从零开始制作示波器--原理图设计之CIS库制作-0-CIS库建立(cadence-orcad16.6)
    1、前言前几天在咸鱼上偶然购得hp-54622示波器主板一块,此主板相对完整(除输入BNC接头缺失外)。主板上包括两块AD9054ABST-135芯片,此芯片为8-Bit,200MSPSA/DConverter。但主板上主芯片无资料,故打算业余时间基于此ADC设计一款示波器。一切从零开始。本次电路设计拟采用c......
  • 16.异常处理
    异常处理什么是异常本节开始介绍之前,先看看如下程序:>>>print(a)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'a'isnotdefined>>>是不是很熟悉,这是我们前面经常看到的程序运行出现的错误。作为Python初学者,在学习Pyth......
  • 1653. 使字符串平衡的最少删除次数
    题目链接:1653.使字符串平衡的最少删除次数方法:动态规划解题思路对于字符串\(s\),设使得字符串\(s[0,i]\)平衡的最小删除次数为\(dp[i]\)。若\(s[0,n-2]\)为平衡字符串,当\(s[n-1]==b\)时,则\(dp[n-1]=dp[n-2]\);当\(s[n-1]==a\)时,则\(dp[n-1]=min(dp[n-2]+1\),\(a\)......
  • 面试题 05.02. 二进制数转字符串
    题目链接:面试题05.02.二进制数转字符串方法:找规律解题思路(1)题目要求:将一个\(0-1\)之间的实数通过二进制进行表示,并通过字符串形式输出。(2)由于二进制的小数只能表示\(\frac{1}{2}\frac{1}{4}\frac{1}{8}...\frac{1}{2^n}\)数之间的和的十进制小数,因此有些十进制小数不能......