16进制和字符串之间转换

原创 2004年07月21日 13:14:00

public class Util {
  public Util() {
  }

  /**
   * 将指定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;
  }

}

 

纹理滤波方式、光源:Jeff Molofee(NeHe) 的 OPENGL 教程-第七课

 Jeff Molofee
  • cker
  • cker
  • 2001-09-09 01:55:00
  • 2252

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

  • 2011年11月05日 21:24
  • 5KB
  • 下载

Cstring 与BYTE类型之间转换

  • 2012年03月31日 17:00
  • 22KB
  • 下载

十六进制的数字字符和十六进制数之间的转换

1、将十六进制数字字符串转成数字long   lTemp   =   strtol("0xa10b", NULL, 16); 这样的话,就将0xa10b这个十六制形式的字符串转为十进制的数字了.注:s...
  • freedomstar
  • freedomstar
  • 2007-12-21 17:00:00
  • 2198

字符串与16进制之间的转换

这个问题看是很简单,但是在不同语言中实现的方式却千差万别,如果不知道方法,还真是麻烦,我就是在C#中遇到该问题,让我费了很大的周折,才在msdn查到。 一、16进制字符串转数字      1、C/...
  • chanchaw
  • chanchaw
  • 2012-05-14 22:11:26
  • 15382

字符串与16进制之间的转换 .

DWORD 就是 Double Word, 每个word为2个字节的长度,DWORD双字即为4个字节,每个字节是8位,共32位     typedef unsigned long DWO...
  • zhang6321615
  • zhang6321615
  • 2013-06-16 08:44:41
  • 471

C#16进制与字符串字节数组之间的转换代码

  • 2011年07月11日 16:22
  • 4KB
  • 下载

UTF8及各种字符串相互转换

  • 2016年01月12日 14:04
  • 15KB
  • 下载

16进制转换成asc

  • 2011年03月22日 17:05
  • 246KB
  • 下载

字符串和数字之间的转换函数(glibc)

atof(将字符串转换成浮点型数)  相关函数  atoi,atol,strtod,strtol,strtoul 表头文件  #include 定义函数  double atof(const char...
  • szwpc
  • szwpc
  • 2005-11-27 21:49:00
  • 1924
收藏助手
不良信息举报
您举报文章:16进制和字符串之间转换
举报原因:
原因补充:

(最多只允许输入30个字)