/**
* @author yaodaqing == 姚大庆
*/
public class Test {
public static void main(String[] args) {
byte[] b = HexString2Bytes("AA020155");
String s = Bytes2HexString(b);
System.out.println(s);
}
/**
* 将两个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, 0×44, 0xEF, 0xD9}
* @param src String
* @return byte[]
*/
public static byte[] HexString2Bytes(String src){
byte[] ret = new byte[src.length()/2];
byte[] tmp = src.getBytes();
for(int i=0; i< tmp.length/2; i++){
ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]);
}
return ret;
}
/**
* 将指定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;
}
}
分享到:
相关推荐
java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...
在 Java 中,我们可以使用 `Bytes2HexString` 函数将 byte 数组转换为 16 进制字符串。该函数接受一个参数 b,即 byte 数组,然后将其转换为 16 进制字符串。 ```java public static String Bytes2HexString(byte[]...
16进制转10进制的过程涉及将16进制字符串的每一位数值按照16的幂次转换成对应的10进制数值,并累加这些数值以得到最终的整数。 给定的文件内容中描述的C++代码片段展示了如何将16进制字符串转换为10进制的整数。...
本主题主要关注如何将16进制字符串转换为10进制数值,这对于编程和数据处理至关重要。16进制(Hexadecimal)是一种逢16进1的计数系统,它使用0-9的数字和A-F的字母(A代表10,B代表11,C代表12,D代表13,E代表14,F...
字符串转16进制ASCII、16进制ASCII转字符串
- `Integer.toHexString()`和`Integer.parseInt(hexStr, 16)`是十六进制字符串与整数之间转换的常用方法。 4. **字符编码与解码**: Java中的`Character`类提供了处理单个字符的方法。例如,可以使用`Character....
/** * 16进制表示的字符串转换为字节数组 * @param hexString 16进制表示的字符串 *... i += 2) { // 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个字节 bytes[i / 2] = (byte) ((Character.digit(hexS
1. **16进制字符串转字节数组**: - `HexString2Bytes`方法实现了将16进制字符串转换为字节数组。它首先创建一个目标数组,然后遍历输入字符串的每个字符对,将每两个字符视为一个16进制数字,通过`uniteBytes`方法...
本示例探讨了如何使用Java实现从Unicode十六进制字符串到中英文字符的转换,以及反过来的过程。理解Unicode和UTF之间的关系是至关重要的。 Unicode是一个国际标准,它为世界上几乎所有的字符提供了一个唯一的数字...
反过来,将16进制字符串转换回ASCII字符串,我们需要将16进制字符串分割成单个字符,然后将它们解析为整数,最后将这些整数转换回相应的字符。这里有一个示例: ```java public String hexToString(String hex) { ...
本节将详细介绍十六进制字符串的按位异或运算以及如何在Java中实现这一运算。 十六进制字符串是由0到9和A到F(或a到f)组成的字符序列,每个字符代表4位二进制数。例如,十六进制数"AB"在二进制下表示为10101011。...
在这个方法中,我们遍历输入字符串中的每个字符,将其转换为对应的ASCII整数值,然后使用`Integer.toHexString()`方法将该整数转换为16进制字符串。最后,我们将结果拼接到一个`StringBuilder`对象中,以空格分隔...
Java 二进制数据与 16 进制字符串相互转换方法 Java 中,二进制数据和 16 进制字符串是两种常见的数据表示形式,在实际编程过程中,我们经常需要将这两种格式相互转换。本文将详细介绍 Java 中二进制数据与 16 进制...
2. **16进制转文件的原理**:将16进制字符串转换为文件,通常需要解析这些字符串,将每个16进制字符转换为其对应的二进制值,然后将这些二进制值组合成完整的字节序列。这个字节序列可以代表任何类型的数据,如文本...
想“把数值转换成16进制字符串”,比如0x00000123转换成字符串"00000123",虽然有函数_itoa可以调用,但是返回结果是"123",用sprintf又不甘心,就自己动手写一个函数DWORDToHexString,附带的HexStringToValue有误...
反之,如果我们有一个16进制字节序列,想要将其还原为字符串,我们需要先将16进制字符串解析为字节,然后再解码成字符串。在Python中,这可以通过`unhexlify`和`decode`函数完成: ```python hex_str = "48656c6c6...
例如,在Java中,我们可以使用`Character.getNumericValue()`函数来获取字符对应的ASCII码值,再用`Integer.toHexString()`将其转换为16进制字符串。反向转换时,可以使用`Integer.parseInt()`将16进制字符串转换为...
在实际应用中,你需要确保输入的16进制字符串是有效的4字节浮点数表示,并且了解与之通信的设备使用的字节序。如果你手头有名为"mytest"的压缩包文件,可能包含了一个实现上述功能的示例程序或测试用例,你可以解压...
本文实例讲述了javascript实现的字符串与十六进制表示字符串相互转换方法。分享给大家供大家参考。具体如下: 之所以写这个,是因为发现SQL注入和XSS中经常利用十六进制表示的字符串,比如 SELECT CONCAT(0x68656c6...
System.out.println("16进制字符串转为颜色的ARGB值:("+String.valueOf(color.getAlpha())+","+String.valueOf(color.getRed())+"," +String.valueOf(color.getGreen())+","+String.valueOf(color.getBlue())+")");...