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;
  }

}

 

SSIS无法在unicode和非unicode 字符串数据类型之间转换

场景:SSIS从oracle抽到sqlserver,一个表对表到数据仓库ODS层的抽取,没有任何逻辑结果遇到问题: SSIS无法在unicode和非unicode 字符串数据类型之间转换 如下图2...
  • goodmoringking
  • goodmoringking
  • 2017年07月12日 17:23
  • 633

数字与字符串之间的转换

C语言为我们提供了数字和字符串之间的转换函数,这些函数有很多,常用的有: 整型数转字符串函数itoa(): char *itoa(int value,char *string,int radix)...
  • cyfcsd
  • cyfcsd
  • 2016年05月12日 11:09
  • 1729

不同字符编码格式之间的转换

一、概述 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。 ...
  • san1156
  • san1156
  • 2015年01月30日 16:07
  • 780

基本类型包装类字符串之间的相互转换

在java开发过程中,经常用会用基本类型和包装类之间的相互转换,使用包装类,使基本类型具有了对象的特性,更方便操作;基本类型和字符串之间的转换也必不可少。...
  • stellar_liu
  • stellar_liu
  • 2016年09月16日 11:54
  • 1443

C++中数字与字符串之间的转换(包括C++11新标准和宽窄字符转换)

C++中数字与字符串之间的转换 1、字符串数字之间的转换 (1)string --> char *    string str("OK");    char * p = str.c_str(...
  • zlzhappy
  • zlzhappy
  • 2017年08月07日 14:03
  • 677

各种字符串以及它们之间的转换

字符串定义 C-Style字符串:C程序语言本身原并不支援字串数据结构。字符串通常以一个字符数组(或称阵列)或一个指向字符资料的指标指标来表达。由于C语言的数组不包含其长度的资讯,故亦无法表示所载之...
  • chijianxingfeng
  • chijianxingfeng
  • 2013年06月26日 11:49
  • 592

字符串各进制之间的转换

--2进制转10进制 --2进制转16进制 --10进制转16进制 --16进制转10进制 CREATE FUNCTION dbo.F_Hex_Dec(@s varchar(max)) RETU...
  • OrchidCat
  • OrchidCat
  • 2016年12月04日 09:51
  • 233

C++ 各个字符串之间的转换

std::wstring Utf82Unicode(const std::string& utf8string) { int widesize = ::MultiByteToWideChar(CP_...
  • Hot_VC
  • Hot_VC
  • 2015年01月06日 08:57
  • 351

日期与字符串之间的转换

import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Calendar; import ja...
  • strutce
  • strutce
  • 2015年08月01日 12:31
  • 404

各种字符串之间的转换

将字符转换为整数,可以使用atoi、_atoi64或atol。 CString 头文件#include string 头文件#include CString 转char * CSt...
  • nishuodeqianshou
  • nishuodeqianshou
  • 2013年04月08日 18:15
  • 384
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:16进制和字符串之间转换
举报原因:
原因补充:

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