/**
* 将指定byte数组以16进制的形式打印到控制台
* @param hint String
* @param b byte[]
* @return void
*/
public static void printHexString(String hint, byte[] b) {
System.out.print(hint);
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
System.out.print(hex.toUpperCase() + " ");
}
System.out.println("");
}
/**
*
* @param b byte[]
* @return String
*/
public static String Bytes2HexString(byte[] b) {
String ret = "";
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
ret += hex.toUpperCase();
}
return ret;
}
/**
* 将两个ASCII字符合成一个字节;
* 如:"EF"--> 0xEF
* @param src0 byte
* @param src1 byte
* @return byte
*/
public static byte uniteBytes(byte src0, byte src1) {
byte _b0 = Byte.decode("0x" + new String(new byte[]{src0})).byteValue();
_b0 = (byte)(_b0 << 4);
byte _b1 = Byte.decode("0x" + new String(new byte[]{src1})).byteValue();
byte ret = (byte)(_b0 ^ _b1);
return ret;
}
/**
* 将指定字符串src,以每两个字符分割转换为16进制形式
* 如:"2B44EFD9" --> byte[]{0x2B, 0x44, 0xEF, 0xD9}
* @param src String
* @return byte[]
*/
public static byte[] HexString2Bytes(String src){
byte[] ret = new byte[8];
byte[] tmp = src.getBytes();
for(int i=0; i<8; i++){
ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]);
}
return ret;
}
分享到:
相关推荐
在 Java 中,我们可以使用 `HexString2Bytes` 函数将 16 进制字符串转换为 byte 数组。该函数接受一个参数 src,即 16 进制字符串,然后将其转换为 byte 数组。 ```java public static byte[] HexString2Bytes...
这个程序可能包含方法,如`hexToCharSequence()`用于将16进制字符串转换为字符序列,以及`charSequenceToHex()`将字符序列转换为16进制字符串。 总之,16进制ASCII与字符串的相互转换是编程中基础但关键的操作,它...
反过来,将16进制字符串转换回ASCII字符串,我们需要将16进制字符串分割成单个字符,然后将它们解析为整数,最后将这些整数转换回相应的字符。这里有一个示例: ```java public String hexToString(String hex) { ...
- `Integer.toHexString()`和`Integer.parseInt(hexStr, 16)`是十六进制字符串与整数之间转换的常用方法。 4. **字符编码与解码**: Java中的`Character`类提供了处理单个字符的方法。例如,可以使用`Character....
想“把数值转换成16进制字符串”,比如0x00000123转换成字符串"00000123",虽然有函数_itoa可以调用,但是返回结果是"123",用sprintf又不甘心,就自己动手写一个函数DWORDToHexString,附带的HexStringToValue有误...
在Java中,我们可以使用`Integer.toHexString()`方法轻松地将一个整数转换为16进制字符串。 下面,我们来看`StringToAscii.java`文件中的实现方式,它主要涉及到字符到整数的转换和整数到16进制的转换。由于没有...
给定的文件内容中描述的C++代码片段展示了如何将16进制字符串转换为10进制的整数。代码首先定义了一个名为`strHexToInt`的函数,该函数接收一个`char*`类型的字符串作为输入,返回一个`int`类型的数值。在转换过程中...
首先,它将输入的十六进制字符串转换为字节数组,然后使用这些字节尝试以UTF-8、UTF-16(与Unicode相同)、UTF-16LE(小端字节序)、UTF-16BE(大端字节序)、UTF-32以及各自的LE和BE版本进行解码。`str2all`方法则...
本篇文章将深入探讨如何将字符串转换为16进制码,以及这种转换在实际应用中的作用。 首先,我们需要了解字符串与16进制之间的关系。每个字符在计算机内部都有其对应的ASCII码或Unicode码,这些码通常是十进制数值。...
这里的`bytes.fromhex()`函数将16进制字符串转换为字节对象,`decode('utf-8')`再将字节解码回字符串。 除了Python,其他编程语言如Java、C++、JavaScript等也有类似的方法进行字符串与16进制字节的转换。在Java中...
本主题主要关注如何将16进制字符串转换为10进制数值,这对于编程和数据处理至关重要。16进制(Hexadecimal)是一种逢16进1的计数系统,它使用0-9的数字和A-F的字母(A代表10,B代表11,C代表12,D代表13,E代表14,F...
将这两个字节转换为16进制字符串。 3. 输出16进制表示:将处理后的16进制字符串连接起来,形成整个文本的16进制表示。 反过来,从16进制转换回GBK编码的过程: 1. 解析16进制字符串:将16进制字符串按每两个字符一...
要将十六进制字符串转换回原来的字符串,需要先将十六进制字符串解析为字节数组,然后再将字节数组转换为原始字符串。具体步骤如下: 1. **定义函数**:`public static String toStringHex(String s)` 2. **初始化...
- 示例中的`hexStringToByte()`方法将十六进制字符串转换为字节数组,而`bytesToHexString()`则将字节数组转换为十六进制字符串。 2. **字节数组** - 字节数组在Java中用`byte[]`表示,它可以存储任意字节值,常...
在Java中,我们可以使用`Integer`类的`toHexString`方法,将一个整数的二进制表示转换为十六进制字符串。例如: ```java int binaryNumber = 0b101010; // 二进制数 String hexString = Integer.toHexString(binary...
通过 `ByteBuf` 的方法,如 `readByte()`、`writeByte()`、`readInt()` 和 `writeInt()` 等,可以读取或写入二进制数据,并可以转换为16进制字符串。 3. **16进制字符串到字节的转换** 当接收到16进制字符串时,...
这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...
Java 的16 进制与字符串的相互转换函数 JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 35 选7 彩票程序 获取GMT8 时间 中文乱码转换 Big5 字与Unicode 的...
例如,在Python中,你可以使用内置的`open()`函数以二进制模式(`'rb'`)读取文件,然后使用`hex()`函数将读取的字节转化为十六进制字符串。转换后的十六进制数据会写入到另一个文本文件中,以供后续使用,如分析、...
总结来说,将十六进制字符串转换为byte数组是编程中常见的操作,涉及到的主要知识点包括字符串处理、二进制数据操作以及对不同编程语言的API理解。在实际应用中,我们需要根据具体需求选择合适的方法和工具,以确保...