16进制字符串和byte数组进行相互转换

简介

1个byte对应8个bit,16进制使用4个bit,所以一个byte转成16进制,占用两位。

JAVA代码

private static final char HexCharArr[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};

    private static final String HexStr = "0123456789abcdef";

    //字节数组转成16进制字符串
public static String byteArrToHex(byte[] btArr) {
char strArr[] = new char[btArr.length * 2];
int i = 0;
for (byte bt : btArr) {
strArr[i++] = HexCharArr[bt>>>4 & 0xf];
strArr[i++] = HexCharArr[bt & 0xf];
}
return new String(strArr);
}
//16进制字符串转成字节数组
public static byte[] hexToByteArr(String hexStr) {
char[] charArr = hexStr.toCharArray();
byte btArr[] = new byte[charArr.length / 2];
int index = 0;
for (int i = 0; i < charArr.length; i++) {
int highBit = HexStr.indexOf(charArr[i]);
int lowBit = HexStr.indexOf(charArr[++i]);
btArr[index] = (byte) (highBit << 4 | lowBit);
index++;
}
return btArr;
}

Gitee地址

https://gitee.com/zhuayng/foundation-study/tree/develop/JavaBasis/Other/src/main/java/com/yxkj/other/modular/byteandchar

参考

https://www.cnblogs.com/zhaoyue1215/p/10449530.html

将10进制转换为任意进制

简介

此针对的是int类型或Long类型

  • 思路

1、十进制数 num 转换为 n进制

num%n结果肯定为n进制数的最后一位

结果存入一个数组中

2、进入一个循环num!=0时候

num=num/n

重复1的操作

将倒数第二位、倒数第三位。。。到最终结果存入数组

3、遍历数组从 count到0

JAVA代码

 public  char[] transform(int num, int n) {
int[] c=new int[100];
int b=-1;
while (num!=0) {
b++;
int a=num%n;
num=num/n;
c[b]=a; }
char[] d=new char[1024];
int e=-1;
//注意 int转成char char获取的是int的ASCII码值
for (int f=0;f<=b;f++) {
e++;
if (c[f]>9){
//A对应2进制为65 ,对应10进制为10 ,故10进制的10转为16进制 在10进制上加上65-10=55
char c1 = (char) (c[f] + 55);
d[e]=c1;
}else {
//10进制转为2进制,10进制的0对应2进制为48
char c1 = (char) (c[f]+48);
d[e]=c1;
} }
return d;
}
@Test
public void Test() {
// 测试用例
Transformation t = new Transformation();
char[] transform = t.transform(314154363, 16);
System.out.println(transform); }

Gitee代码地址

https://gitee.com/zhuayng/foundation-study/tree/develop/JavaBasis/Other/src/main/java/com/yxkj/other/modular/coding

16进制字符串和byte数组进行相互转换\将10进制转换为任意进制的更多相关文章

  1. java中 16进制字符串 与普通字符串 与 byte数组 之间的转化

    方法依赖commons-codec包  maven的引入方式如下 <dependency> <groupId>commons-codec</groupId> < ...

  2. Java中字符串和byte数组之间的相互转换

    1.将字符转换成byte数组 String str = "罗长"; byte[] sb = str.getBytes(); 2.将byte数组转换成字符 byte[] b={(by ...

  3. 字符串与byte数组转换

    string weclome=""; byte[] data = new byte[1024]; //字符串转byte数组 data = Encoding.ASCII.GetByt ...

  4. 二进制样式的字符串与byte数组互转函数示例

    开发时用到的方法,记录下: /// <summary> /// 测试方法 /// </summary> private void TestFun() { Response.Wr ...

  5. Golang十六进制字符串和byte数组互转

    Golang十六进制字符串和byte数组互转 需求 Golang十六进制字符串和byte数组互相转换,使用"encoding/hex"包 实现Demo package main i ...

  6. java压缩和解压字符串,Byte数组,String

    在网上找到的压缩解压的工具类,可以压缩String字符串 /*** * 压缩GZip * * @param data * @return */ public static byte[] gZip(by ...

  7. 字符串和byte数组的相互转化

    关于byte[]数组转十六进制字符串: public static String getHexString(byte[] b) throws Exception { String result = & ...

  8. java中十进制转换为任意进制

    次笔试时候遇到的关于十进制转换成十三进制的编程题. 先说说简单的思路吧: 1.十进制数 num 转换为 n进制 num%n结果肯定为n进制数的最后一位 结果存入一个数组中 2.进入一个循环num!=0 ...

  9. 利用python实现整数转换为任意进制字符串

    假设你想将一个整数转换为一个二进制和十六进制字符串.例如,将整数 10 转换为十进制字符串表示为 10 ,或将其字符串表示为二进制 1010 . 实现 以 2 到 16 之间的任何基数为参数: def ...

随机推荐

  1. wiodows /linux CMD

    windows : netstat -ano      查看所有端口使用情况 netstat -ano |findstr "端口号"     查看特定端口号 tasklist |f ...

  2. CS起源-havana地图红方打法分析

    作者:海底淤泥 havana是美国第一人称射击游戏<反恐精英>中的地图之一,编号为cs_havana,这张地图发生在古巴哈瓦那的某座城市中,恐怖分子们挟持了几名美裔的重要政治人物,以此为筹 ...

  3. Log4自定义Appender介绍

    最初想要在执行一段业务逻辑的时候调用一个外部接口记录审计信息,一直找不到一个比较优雅的方式,经过讨论觉得log4j自定义的appender或许可以实现此功能.后来就了解了一下log4j的这部分. Ap ...

  4. Estimation of Non-Normalized Statistical Models by Score Matching

    目录 概 主要内容 方法 损失函数的转换 一个例子 Hyv"{a}rinen A. Estimation of Non-Normalized Statistical Models by Sc ...

  5. CausalVAE: Disentangled Representation Learning via Neural Structural Causal Models

    目录 概 主要内容 模型 ELBO 关于 Yang M., Liu F., Chen Z., Shen X., Hao J. and Wang J. CausalVAE: disentangled r ...

  6. AWS 15年(2):云原生兴起

    AWS创立云计算15年来,没有一个行业不跟云计算相关,没有任何一个颠覆性创新缺少云计算的参与,云已经是不可逆的滚滚洪流. AWS这15年,是云原生服务从无到有再到基本成熟的15年,是云原生应用兴起的1 ...

  7. IIS部署.net core项目

    1.安装AspNetCoreModule模块 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,中间最 ...

  8. CSS基础 CSS常见错误排错思路

  9. C# - 集合差集计算

    使用  Except 方法做差集, 结果赋值给 IEnumerable 类 ,这是一个枚举集合类 ,泛型使用对应的类型即可,没办法之间使用count 或 lenght 方法获取,只能循环计算

  10. vim - 显示不可见字符(:set list)

    默认情况下,vim是不会显示space,tabs,newlines,trailing space,wrapped lines等不可见字符的.我们可以使用以下命令打开list选项,来显示非可见字符: : ...