1. 程式人生 > >16進位制字串與byte互相轉換

16進位制字串與byte互相轉換

直接貼程式碼

/**
	 * 16進位制字串轉換為byte[]
	 * 
	 * @param hexString
	 * @return
	 */
	public static byte[] hexStringToBytes(String hexString) {
		if (hexString == null || hexString.equals("")) {
			return null;
		}
		hexString = hexString.toUpperCase().replace(" ", "");
		int length = hexString.length() / 2;
		char[] hexChars = hexString.toCharArray();
		byte[] d = new byte[length];
		for (int i = 0; i < length; i++) {
			int pos = i * 2;
			d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
		}
		return d;
	}

	/**
	 * byte[]轉換成16進位制字串
	 * 
	 * @param src
	 * @return
	 */
	public static String bytesToHexString(byte[] src) {
		StringBuilder stringBuilder = new StringBuilder("");
		if (src == null || src.length <= 0) {
			return null;
		}
		for (int i = 0; i < src.length; i++) {
			int v = src[i] & 0xFF;
			String hv = Integer.toHexString(v);
			if (hv.length() < 2) {
				stringBuilder.append(0);
			}
			stringBuilder.append(hv);
		}
		return stringBuilder.toString();
	}

	private static byte charToByte(char c) {
		return (byte) "0123456789ABCDEF".indexOf(c);
	}


相關推薦

16字串byte互相轉換

直接貼程式碼 /** * 16進位制字串轉換為byte[] * * @param hexString * @return */ public static byte[] hex

Java 16字串和位元組陣列轉換的幾種方法

1 十六進位制字串轉位元組陣列方法 /** * 16進製表示的字串轉換為位元組陣列 * * @param hexString 16進製表示的字串 * @retu

16CStringint相互轉換

以下為VC2008下實現程式碼: 一、int型轉16進位制CString CString IntToCStringHex(int algorism)//十六進位制轉換 {  vector<int> reNum; CString str; //倒序輸出  do

Java中byte16字串互相轉換

轉載自:https://my.oschina.net/u/1024767/blog/178960 Java中byte用二進位制表示佔用8位,而我們知道16進位制的每個字元需要用4位二進位制位來表示(23 + 22 + 21 + 20 = 15),所以我們就可以把每個byte

js byte陣列16字串互轉(對負值填坑)

//十六進位制字串轉位元組陣列,跟網上demo一樣 function HexString2Bytes(str) {   var pos = 0;   var len = str.length;   if (len % 2 != 0) { &

byte[]陣列十六字串字串互相轉換(轉載)

1.請問c#中如何將十進位制數的字串轉化成十六進位制數的字串 //十進位制轉二進位制 Console.WriteLine("十進位制166的二進位制表示: "+Convert.ToString(166, 2)); //十進位制轉八進位制 Console.WriteLine("十進位制166的八進位制表示:

byte[]陣列十六字串字串互相轉換

字串轉換成十六進位制字串方法1:   /**      * 字串轉換成十六進位制字串      */      public static String str2HexStr(String str) {          char[] chars = "0123456789ABCDEF".toChar

byte陣列轉成16字串的一種實現方式

public String bytes2HexStr(byte[] byteArr) { String hexString = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArr.lengt

java 二進位制資料16字串相互轉化

        二進位制資料一般輸入的格式是0x45, 0x3a, 0xc3, 這種資料格式看起來是16進位制的字串,但是實際上在儲存的時候每個都對應一個位元組,比如0x45的二進位制位元組就是0100 0101,對應的16進位制字串就是0x45。實際程式設計過程中,經常遇

C#: byte[] 轉換16字串

1.byte[] 轉換16進位制字串    1.1 BitConverter方式 var str = DateTime.Now.ToString(); var encode = Encoding.UTF8; var bytes = encode.GetBytes(st

char/byte陣列轉16字串

// ConsoleApplication1.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { unsigned char char0xFF[16]

關於MD5加密中byte陣列轉換16字串的研究

簡介:四種md5加密,主要區別在於將md5加密後的byte陣列轉換為16進位制字串的方式。 1.第一種,使用bigInteger進行轉換 public static String md5Encrypt(String src){ try

python byte 陣列 和 16字串轉換

假設: hex_string = “deadbeef” 轉換成字串格式 >>> hex_data = hex_string.decode("hex") >>> hex_data "\xde\xad\xbe\xef" 轉

java 16字串轉二進位制(byte[])

public static byte[] hexStr2Byte(String hex) { ByteBuffer bf = ByteBuffer.allocate(hex.length() /

16字串和位元組陣列互相轉換

package com.wpn.net.util; public class NumberChange { /* * 把16進位制字串轉換成位元組陣列 @param hex @return */ public static byte[] hexStringTo

Redis中get值中文顯示為\xe4\xbd\xa0\xe5\xa5\xbd的16字串怎麼解決

場景: 在伺服器上redis-cli其他(線上)伺服器中redis值時,遇到了這個問題,百度一下,果然有前人採坑,果斷收錄一下_ 在啟動Redis客戶端如下加入引數輸入可解決: [[email protected] redis]# ./bin/redis-cli --raw

nodejs十六字串btye型資料相互轉換

byte型轉換十六進位制字串 /** * byte型轉換十六進位制 * @param b * @returns {string} * @constructor */ const Bytes2HexString = (b)=> { let hexs = ""; fo

使用python實現RSA加解密演算法(包含讀取檔案操作),檔案內容為16字串,同時實現對學號姓名的加密——(SCU應用密碼學實驗)

#-*- coding:UTF-8 -*- ''' time: 2018-5-30 content:RSA python 3.6 mac os ''' from random import randint import random im

將string字串轉化為16字串

    std::string ConverToHexString(const char *in_pData,unsigned int in_uiLen)     {         std::string

Python 位元組陣列 和 16字串轉換

在例子中對指定的字串: faa5fbb5fcc5fdd5010200000028000001900000000a002d00000000017d7840000003e800005fa55fb55fc55fd5   使用了三種方法將其轉換為大寫字母並每隔2個字元用空格分割處理後得