`
cuisuqiang
  • 浏览: 3964912 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3673912
社区版块
存档分类
最新评论

字节数组 与 十六进制间的转换

阅读更多
package com.test;
import java.util.Arrays;
public class Bytes {
	private final static byte[] hex = "0123456789ABCDEF".getBytes();
	private static int parse(char c) {
		if (c >= 'a')
			return (c - 'a' + 10) & 0x0f;
		if (c >= 'A')
			return (c - 'A' + 10) & 0x0f;
		return (c - '0') & 0x0f;
	}
	// 从字节数组到十六进制字符串转换
	public static String Bytes2HexString(byte[] b) {
		byte[] buff = new byte[2 * b.length];
		for (int i = 0; i < b.length; i++) {
			buff[2 * i] = hex[(b[i] >> 4) & 0x0f];
			buff[2 * i + 1] = hex[b[i] & 0x0f];
		}
		return new String(buff);
	}
	// 从十六进制字符串到字节数组转换
	public static byte[] HexString2Bytes(String hexstr) {
		byte[] b = new byte[hexstr.length() / 2];
		int j = 0;
		for (int i = 0; i < b.length; i++) {
			char c0 = hexstr.charAt(j++);
			char c1 = hexstr.charAt(j++);
			b[i] = (byte) ((parse(c0) << 4) | parse(c1));
		}
		return b;
	}
	public static void main(String[] args) {
		byte[] bt = new byte[]{10, 2, 12, 14, 1, 0, 0, 1, 0, 31, 45, 1, 8, 0, 1, 0, -96, -45, 10, 3};
		System.out.println(Bytes2HexString(bt));
		System.out.println(Arrays.toString(HexString2Bytes("0A020C0E01000001001F2D0108000100A0D30A03")));
	}
}

 

打印结果:

0A020C0E01000001001F2D0108000100A0D30A03
[10, 2, 12, 14, 1, 0, 0, 1, 0, 31, 45, 1, 8, 0, 1, 0, -96, -45, 10, 3]

 

请您到ITEYE看我的原创:http://cuisuqiang.iteye.com

或支持我的个人博客,地址:http://www.javacui.com

 

1
4
分享到:
评论

相关推荐

    android byte字节数组转换十六进制字符串

    在Android开发中,有时我们需要将字节数组(byte array)转换为十六进制字符串,以便于数据存储、传输或调试。这是因为字节数组是二进制数据,而十六进制字符串则是一种人类可读的表示方式。下面我们将详细讨论如何...

    java中进制转换(二进制,十进制,十六进制)及字节数组与十六进制的转换

    5. **十六进制转二进制**:先将十六进制转换为十进制,再转为二进制。例如: ```java String hex = "1A"; int decimal = Integer.parseInt(hex, 16); String binary = Integer.toBinaryString(decimal); ``` 6. **...

    PHP CRC8算法-集成十六进制转byte数组与byte数组转十六进制

    由C代码翻译过来的PHP CRC8算法,内有十六进制转字节数组与字节数组转十六进制,内有十六进制转byte数组与byte数组转十六进制

    JAVA二进制字节数组字符十六进制BCD编码转换.doc

    1. **二进制与十六进制转换** - 二进制是一种基于2的计数系统,只包含两个数字:0和1。 - 十六进制是一种基于16的计数系统,由0-9的阿拉伯数字和A-F的字母(代表10-15)组成。 - 在Java中,可以使用`Integer....

    C#字节数组转16进制字符串

    C#字节数组转16进制字符串 C#字节数组转16进制字符串 QQ:292258449

    ASCII码字符串(十六进制)与字节数组的互转

    在这个场景下,我们需要理解如何在LabVIEW中将ASCII码字符串(通常以十六进制形式表示)转换为字节数组,反之亦然。 首先,我们要了解ASCII码。ASCII(American Standard Code for Information Interchange,美国...

    作业要求补全附件中的程序ConvertUtil类。说明:完成字节数组与BASE64编码、字节数组与十六进制的转换

    作业要求补全附件中的程序ConvertUtil类。 说明:完成字节数组与BASE64编码、字节数组与十六进制的转换

    16进制与字符串、字节数组之间的转换

    ### 三、字节数组与十六进制之间的转换 #### 3.1 字节数组转十六进制 当处理字节数组时,可以直接将每个字节转换为十六进制形式: ```csharp public static string ByteArrayToHexString(byte[] bytes) { ...

    把十六进制的位串转化为byte数组

    在IT行业中,数据的存储和处理常常涉及到不同的进制转换,比如从十进制到二进制,或者从十六进制到字节数组。在Java编程中,将十六进制位串转化为byte数组是一项常见的操作,特别是在处理二进制数据、网络通信或者...

    byte、十进制、十六进制间的转换

    byte数组、十进制、十六进制间的两两转换

    十六进制转字节工具

    由于字符型在大多数系统中占据一个字节,我们可以直接使用它来存储十六进制转换后的字节值。例如,要将十六进制数"4A"转换为字节,可以这样做: ```c char hexByte = 0x4A; ``` 这里的`0x`前缀是C语言中的十六进制...

    单精度浮点数与十六进制转换_C语言程序

    在探讨“单精度浮点数与十六进制转换_C语言程序”这一主题时,我们首先需要理解几个核心概念:单精度浮点数、十六进制以及它们之间的转换机制。此外,我们将深入分析C语言中实现这些转换的具体方法,以及如何在...

    C#实现十六进制AES的加解密,字节数组工具类

    1. 字节数组到十六进制字符串的转换:用于将字节数组的数据转换成易于阅读和传递的十六进制格式。 2. 十六进制字符串到字节数组的转换:相反地,这个方法将十六进制字符串解析回原始字节数组形式。 3. 其他辅助方法...

    Java实现的进制转换工具类完整示例

    该工具类主要提供了将字节数组转换为十六进制字符数组或字符串的方法,以及将字符串转换为十六进制字符数组或字符串的方法。 在Java中,十六进制是一种常用的进制,它可以用数字0到9和字母A到F表示。十六进制在...

    十六进制与jpg图片之间的转换

    十六进制与jpg图片之间的转换涉及到两个主要过程:十六进制到二进制的转换以及二进制到jpg图像的还原。十六进制数据首先需要转换为二进制,因为计算机是以二进制形式(0和1)处理数据的。这个过程可以通过将每个十六...

    JPG图片转化成十六进制数据的程序

    具体实现时,程序会逐个读取JPG文件的字节,并将其转换为十六进制字符串。例如,字节0xFF会被转换成“FF”,0xD8会被转换成“D8”,以此类推。转换后的十六进制字符串会被写入TXT文件,形成一连串的十六进制数据,如...

    java二进制,字节数组,字符,十六进制,BCD编码转换

    /* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */

    十六进制与字符串转换

    2. **字符串到十六进制转换**: - 手动解析:遍历字符串中的每个字符,将其视为两位的十六进制数,并转换为对应的十进制值。例如,`'A'`在ASCII码中是65,其对应的十六进制值是41。这需要对字符的ASCII码值和十六...

    Java将字节转换为十六进制代码分享

    以下是一个简单的Java方法,用于将字节数组转换为十六进制字符串: ```java public static String bytesToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append...

Global site tag (gtag.js) - Google Analytics