`
zengjinliang
  • 浏览: 307731 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java的16进制与字符串的相互转换函数

阅读更多
/**
  * 将指定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;
}
分享到:
评论

相关推荐

    java16进制与字符串的转换.pdf

    在 Java 中,我们可以使用 `HexString2Bytes` 函数将 16 进制字符串转换为 byte 数组。该函数接受一个参数 src,即 16 进制字符串,然后将其转换为 byte 数组。 ```java public static byte[] HexString2Bytes...

    16进制Ascll与字符串相互转换

    这个程序可能包含方法,如`hexToCharSequence()`用于将16进制字符串转换为字符序列,以及`charSequenceToHex()`将字符序列转换为16进制字符串。 总之,16进制ASCII与字符串的相互转换是编程中基础但关键的操作,它...

    android字符串和16进制转换

    反过来,将16进制字符串转换回ASCII字符串,我们需要将16进制字符串分割成单个字符,然后将它们解析为整数,最后将这些整数转换回相应的字符。这里有一个示例: ```java public String hexToString(String hex) { ...

    java String 与各种进制字符之间的转换

    - `Integer.toHexString()`和`Integer.parseInt(hexStr, 16)`是十六进制字符串与整数之间转换的常用方法。 4. **字符编码与解码**: Java中的`Character`类提供了处理单个字符的方法。例如,可以使用`Character....

    16进制字符串转换DWORDToHexString

    想“把数值转换成16进制字符串”,比如0x00000123转换成字符串"00000123",虽然有函数_itoa可以调用,但是返回结果是"123",用sprintf又不甘心,就自己动手写一个函数DWORDToHexString,附带的HexStringToValue有误...

    java实现字符转换成十六进制的ASCII码

    在Java中,我们可以使用`Integer.toHexString()`方法轻松地将一个整数转换为16进制字符串。 下面,我们来看`StringToAscii.java`文件中的实现方式,它主要涉及到字符到整数的转换和整数到16进制的转换。由于没有...

    字符串16进制转10进制

    给定的文件内容中描述的C++代码片段展示了如何将16进制字符串转换为10进制的整数。代码首先定义了一个名为`strHexToInt`的函数,该函数接收一个`char*`类型的字符串作为输入,返回一个`int`类型的数值。在转换过程中...

    java实现十六进制字符unicode与中英文转换示例

    首先,它将输入的十六进制字符串转换为字节数组,然后使用这些字节尝试以UTF-8、UTF-16(与Unicode相同)、UTF-16LE(小端字节序)、UTF-16BE(大端字节序)、UTF-32以及各自的LE和BE版本进行解码。`str2all`方法则...

    字符串转16进制码

    本篇文章将深入探讨如何将字符串转换为16进制码,以及这种转换在实际应用中的作用。 首先,我们需要了解字符串与16进制之间的关系。每个字符在计算机内部都有其对应的ASCII码或Unicode码,这些码通常是十进制数值。...

    字符串转16进制字节

    这里的`bytes.fromhex()`函数将16进制字符串转换为字节对象,`decode('utf-8')`再将字节解码回字符串。 除了Python,其他编程语言如Java、C++、JavaScript等也有类似的方法进行字符串与16进制字节的转换。在Java中...

    16进制字符串转10进制

    本主题主要关注如何将16进制字符串转换为10进制数值,这对于编程和数据处理至关重要。16进制(Hexadecimal)是一种逢16进1的计数系统,它使用0-9的数字和A-F的字母(A代表10,B代表11,C代表12,D代表13,E代表14,F...

    生僻字与16进制的转换

    将这两个字节转换为16进制字符串。 3. 输出16进制表示:将处理后的16进制字符串连接起来,形成整个文本的16进制表示。 反过来,从16进制转换回GBK编码的过程: 1. 解析16进制字符串:将16进制字符串按每两个字符一...

    JAVA 十六进制与字符串的转换

    要将十六进制字符串转换回原来的字符串,需要先将十六进制字符串解析为字节数组,然后再将字节数组转换为原始字符串。具体步骤如下: 1. **定义函数**:`public static String toStringHex(String s)` 2. **初始化...

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

    - 示例中的`hexStringToByte()`方法将十六进制字符串转换为字节数组,而`bytesToHexString()`则将字节数组转换为十六进制字符串。 2. **字节数组** - 字节数组在Java中用`byte[]`表示,它可以存储任意字节值,常...

    Java实现任意进制的转换

    在Java中,我们可以使用`Integer`类的`toHexString`方法,将一个整数的二进制表示转换为十六进制字符串。例如: ```java int binaryNumber = 0b101010; // 二进制数 String hexString = Integer.toHexString(binary...

    netty服务器解析16进制数据

    通过 `ByteBuf` 的方法,如 `readByte()`、`writeByte()`、`readInt()` 和 `writeInt()` 等,可以读取或写入二进制数据,并可以转换为16进制字符串。 3. **16进制字符串到字节的转换** 当接收到16进制字符串时,...

    Base16 java字符串与十六进制互转 js字符串与十六进制互转

    这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...

    Java进制/时间/日期/字符串/流算法大全

    Java 的16 进制与字符串的相互转换函数 JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 35 选7 彩票程序 获取GMT8 时间 中文乱码转换 Big5 字与Unicode 的...

    jpg图片转换成十六进制字符文件

    例如,在Python中,你可以使用内置的`open()`函数以二进制模式(`'rb'`)读取文件,然后使用`hex()`函数将读取的字节转化为十六进制字符串。转换后的十六进制数据会写入到另一个文本文件中,以供后续使用,如分析、...

    将传进来的十六进制表示的字符串转换成byte数组 文件下载

    总结来说,将十六进制字符串转换为byte数组是编程中常见的操作,涉及到的主要知识点包括字符串处理、二进制数据操作以及对不同编程语言的API理解。在实际应用中,我们需要根据具体需求选择合适的方法和工具,以确保...

Global site tag (gtag.js) - Google Analytics