成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

java byte數組與16進制間相互轉換的示例

瀏覽:98日期:2022-08-22 09:51:33

1.準備工作

import java.util.Arrays;/** * Byte[]與hex的相互轉換 * @explain * @author Marydon * @creationTime 2018年6月11日下午2:29:11 * @version 1.0 * @since * @email marydon20170307@163.com */public class ByteUtils { // 16進制字符 private static final char[] HEX_CHAR = { ’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’a’, ’b’, ’c’, ’d’, ’e’, ’f’ };}

2.byte類型數組轉化成16進制字符串

方法一

/** * 方法一:將byte類型數組轉化成16進制字符串 * @explain 字符串拼接 * @param bytes * @return */public static String toHexString(byte[] bytes) { StringBuilder sb = new StringBuilder(); int num; for (byte b : bytes) { num = b < 0 ? 256 + b : b; sb.append(HEX_CHAR[num / 16]).append(HEX_CHAR[num % 16]); } return sb.toString();}

方法二

/** * 方法二: byte[] to hex string * @explain 使用數組 * @param bytes * @return */public static String toHexString2(byte[] bytes) { // 一個byte為8位,可用兩個十六進制位表示 char[] buf = new char[bytes.length * 2]; int a = 0; int index = 0; // 使用除與取余進行轉換 for (byte b : bytes) { if (b < 0) a = 256 + b; else a = b; // 偶數位用商表示 buf[index++] = HEX_CHAR[a / 16]; // 奇數位用余數表示 buf[index++] = HEX_CHAR[a % 16]; } // char[]-->String return new String(buf);}

方法三

/** * 方法三: byte[]-->hexString * @explain 使用位運算 * @param bytes * @return */public static String toHexString3(byte[] bytes) { char[] buf = new char[bytes.length * 2]; int index = 0; // 利用位運算進行轉換,可以看作方法二的變型 for (byte b : bytes) { buf[index++] = HEX_CHAR[b >>> 4 & 0xf]; buf[index++] = HEX_CHAR[b & 0xf]; } return new String(buf);}

方法四

/** * 方法四:byte[]-->hexString * @param bytes * @return */public static String toHexString4(byte[] bytes) { StringBuilder sb = new StringBuilder(bytes.length * 2); // 使用String的format方法進行轉換 for (byte b : bytes) { sb.append(String.format('%02x', new Integer(b & 0xff))); } return sb.toString();}

方法五

/** * 將byte數組轉換成16進制字符串 * * @param src * @return */private static String bytesToHexString(byte[] src) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { sb.append(0); } sb.append(hv); } return sb.toString();}

3.16進制字符串轉換為byte[]

方法一

/** * 將16進制字符串轉換為byte[] * @explain 16進制字符串不區分大小寫,返回的數組相同 * @param hexString * 16進制字符串 * @return byte[] */public static byte[] fromHexString(String hexString) { if (null == hexString || ''.equals(hexString.trim())) { return new byte[0]; } byte[] bytes = new byte[hexString.length() / 2]; // 16進制字符串 String hex; for (int i = 0; i < hexString.length() / 2; i++) { // 每次截取2位 hex = hexString.substring(i * 2, i * 2 + 2); // 16進制-->十進制 bytes[i] = (byte) Integer.parseInt(hex, 16); } return bytes;}

方法二

/** * 將16進制轉換為byte[] * @param hexStr * @return */public static byte[] fromHex(String hexStr) { if (hexStr.length() < 1) return null; byte[] result = new byte[hexStr.length() / 2]; for (int i = 0; i < hexStr.length() / 2; i++) { int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16); int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16); result[i] = (byte) (high * 16 + low); } return result;}

方法三:

public static byte[] toByteArray(String data) { if (data == null) {return new byte[] {}; } if (data.length() == 0) {return new byte[] {}; } while (data.length() < 2) {data = '0' + data; } if (data.substring(0, 2).toLowerCase().equals('0x')) {data = data.substring(2); } if (data.length() % 2 == 1) {data = '0' + data; } data = data.toUpperCase(); byte[] bytes = new byte[data.length() / 2]; String hexString = '0123456789ABCDEF'; for (int i = 0; i < bytes.length; i++) {int byteConv = hexString.indexOf(data.charAt(i * 2)) * 0x10;byteConv += hexString.indexOf(data.charAt(i * 2 + 1));bytes[i] = (byte) (byteConv & 0xFF); } return bytes;}

4.測試

public static void main(String[] args) throws Exception { String json = '{'name':'Marydon','website':'http://www.cnblogs.com/Marydon20170307'}'; byte[] bytes = json.getBytes('utf-8'); System.out.println('字節數組為:' + Arrays.toString(bytes)); System.out.println('byte數組轉16進制之方法一:' + toHexString(bytes)); System.out.println('byte數組轉16進制之方法二:' + ByteUtils.toHexString2(bytes)); System.out.println('byte數組轉16進制之方法三:' + ByteUtils.toHexString3(bytes)); System.out.println('byte數組轉16進制之方法四:' + ByteUtils.toHexString4(bytes)); System.out.println('=================================='); String str = '7b226e616d65223a224d617279646f6e222c2277656273697465223a22687474703a2f2f7777772e636e626c6f67732e636f6d2f4d617279646f6e3230313730333037227d'; System.out.println('轉換后的字節數組:' + Arrays.toString(fromHexString(str))); System.out.println(new String(fromHexString(str), 'utf-8'));}

補充

1B=8b,也就是1byte=8bit;

1KB=1024B;

1MB=1024KB;

1GB=1024MB;

1TB=1024GB

bit是計算機最小的存儲單元,只能存儲0和1,是Binary digit(二進制數位)的縮寫,意為“位”或“比特”,也就是二進制。

以上就是java byte數組與16進制間相互轉換的示例的詳細內容,更多關于java byte數組與16進制間的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产欧美一区二区精品性色 | 91玉足脚交白嫩脚丫在线播放| 乱人伦精品视频在线观看| 国产女人水真多18毛片18精品视频| 久久精品久久精品| 老牛嫩草一区二区三区日本 | 欧美老肥妇做.爰bbww视频| 三级欧美在线一区| 亚洲欧美清纯在线制服| 一区二区成人在线观看| 亚洲美女毛片| 中文字幕日韩精品一区| 国内精品久久久久国产盗摄免费观看完整版| 精品国产乱码久久久久久浪潮| 国产成人综合亚洲网站| 91精品中文字幕一区二区三区| 男女性色大片免费观看一区二区 | 久久久亚洲高清| 成人午夜电影小说| 日韩一级精品视频在线观看| 国产成人av影院| 精品嫩草影院久久| 91麻豆国产在线观看| 国产亚洲福利社区一区| 欧美福利电影在线观看| 国产精品美女久久久久久久网站| 亚洲一本视频| 亚洲欧洲日韩av| 欧美日韩1区| 日韩伦理免费电影| 91久久精品www人人做人人爽| 亚洲精品乱码久久久久| 国产欧美日韩| 亚洲成人一区在线| 欧美性大战久久| 国产一区二区三区在线观看精品| 欧美一区二区三区四区五区| 成人少妇影院yyyy| 久久精品一级爱片| 韩国欧美一区| 亚洲精品乱码久久久久久黑人 | 久久亚洲私人国产精品va媚药| 色综合中文字幕国产 | 免费成人av在线播放| 久热精品在线| 日韩av中文在线观看| 欧美三级欧美一级| 成人美女视频在线观看18| www久久精品| 国内精品久久久久久久影视麻豆| 亚洲无人区一区| 欧美性猛片aaaaaaa做受| 成人午夜免费电影| 国产精品免费免费| 六月丁香综合| 国产在线不卡视频| 久久久久国产精品麻豆ai换脸 | 奇米精品一区二区三区在线观看一| 欧美日韩一区二区在线视频| 粉嫩av亚洲一区二区图片| 欧美激情在线看| 国产亚洲在线观看| 国产一区二区精品在线观看| 久久综合五月天婷婷伊人| 影音先锋亚洲电影| 午夜精品久久久久久| 91麻豆精品国产91久久久久久| 91丨porny丨国产| 亚洲三级在线观看| 色狠狠桃花综合| 国产白丝网站精品污在线入口| 国产欧美日韩在线视频| 亚洲永久免费| 国产一区二区精品久久| 国产片一区二区三区| 国产一区二区你懂的| 精久久久久久久久久久| 久久精品视频在线看| 91久久精品国产91久久性色tv| 日韩二区三区在线观看| 精品国产免费久久| 国产日韩欧美精品| 久久99久久精品| 国产婷婷色一区二区三区四区 | 成人av资源下载| 亚洲制服丝袜av| 日韩视频免费观看高清完整版| 精品动漫3d一区二区三区免费版| 欧美96一区二区免费视频| 久久久久九九视频| 久久五月天婷婷| av动漫一区二区| 婷婷国产在线综合| 国产亚洲欧美一级| 欧美影院午夜播放| 国产精品sss| 精品午夜久久福利影院| 亚洲欧美自拍偷拍| 8x8x8国产精品| 亚洲三级视频| 国产91对白在线观看九色| 一二三四社区欧美黄| 欧美成va人片在线观看| 亚洲一区二区三区四区五区午夜| 国产美女一区二区三区| 一区二区三区中文字幕| 91精品国产福利| 国产精品一区二区你懂得| 不卡电影免费在线播放一区| 午夜国产精品影院在线观看| 国产午夜精品久久久久久免费视| 欧美视频精品在线观看| 亚洲精品在线二区| 不卡av电影在线播放| 青青草一区二区三区| 中文字幕一区二区三区不卡在线| 91精品国产一区二区三区香蕉| 亚洲视频成人| 波多野结衣中文字幕一区二区三区 | 成人免费看视频| 亚洲午夜在线视频| 日韩视频中午一区| 亚欧成人精品| 色综合久久中文字幕综合网| 午夜精品免费在线| 最新成人av在线| 欧美xxx久久| 欧美三区在线观看| 国产三级精品在线不卡| 欧美激情第10页| 国产精品18久久久久久久久| 香蕉久久一区二区不卡无毒影院| 国产精品亲子乱子伦xxxx裸| 日韩欧美一区在线| 欧美天堂一区二区三区| 亚洲永久免费精品| 国产一区高清视频| 99精品在线观看视频| 精品一区二区三区视频在线观看 | 成人精品一区二区三区中文字幕| 免费成人深夜小野草| 亚洲午夜一二三区视频| 国产精品久久久久久户外露出| 欧美一区二区三区白人| 色婷婷av一区二区三区软件| 99在线精品免费视频九九视| 欧美久久影院| av网站一区二区三区| 国产精品一区二区在线观看网站| 午夜伦欧美伦电影理论片| 亚洲黄色小说网站| 亚洲欧洲美洲综合色网| 久久婷婷国产综合国色天香| 91精品在线观看入口| 欧美日韩中文精品| 色婷婷精品久久二区二区蜜臂av | 久久色.com| 精品日韩一区二区三区免费视频| 4438亚洲最大| 欧美艳星brazzers| 在线观看日韩电影| 久久久久久一区| 蘑菇福利视频一区播放| 国产精品亚洲欧美| 夜久久久久久| 亚洲精品一区二| 亚洲激情国产| 亚洲啪啪91| 亚洲图片欧洲图片日韩av| 色综合久久中文字幕| 99免费精品视频| 不卡一区在线观看| 99久久精品国产一区二区三区| 粉嫩绯色av一区二区在线观看 | 亚洲成a人v欧美综合天堂下载| 亚洲精品乱码久久久久久| 亚洲色图欧洲色图婷婷| 亚洲三级电影全部在线观看高清| 日韩美女啊v在线免费观看| 亚洲乱码国产乱码精品精可以看| 综合久久国产九一剧情麻豆| 中文字幕精品在线不卡| 国产日本欧洲亚洲| 国产精品乱码一区二三区小蝌蚪| 国产精品理论在线观看| 亚洲天堂精品视频| 亚洲综合清纯丝袜自拍| 亚洲成a人在线观看| 日本欧美一区二区| 久久精品国产99| 国产一区二区三区最好精华液| 国产乱子伦视频一区二区三区| 国产成人av电影| 91在线观看成人| 欧美日韩三区| 亚洲人成免费| 一级成人国产| 色视频一区二区| 欧美夫妻性生活| 精品国产乱码久久久久久浪潮|