日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:134日期: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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品国产亚洲aⅴ| 免费日韩视频| 免费在线欧美黄色| 久久成人av| 国产精品magnet| 欧美91在线|欧美| 精品中文字幕一区二区三区| 免费在线欧美黄色| 国产三级一区| 开心激情综合| 亚洲三级欧美| 欧美日韩黑人| 久久亚洲图片| 欧美日韩一区二区三区不卡视频| 国产欧美日韩精品一区二区免费| 欧美激情在线精品一区二区三区| 国产精品videossex久久发布 | 欧美激情 亚洲a∨综合| 美女毛片一区二区三区四区最新中文字幕亚洲| 青青草视频一区| 另类欧美日韩国产在线| 国产+成+人+亚洲欧洲在线| 国产精品久久久久久久免费观看| 日韩专区精品| 日韩视频一区| 日韩精品久久久久久久软件91| 四虎国产精品免费久久| 国产精品亚洲综合久久| 91亚洲国产高清| 黄色日韩在线| 国产乱人伦丫前精品视频| 欧美国产美女| 久久香蕉精品| 久久av超碰| 99热精品久久| 蜜桃一区二区三区在线| 国产图片一区| 成人午夜精品| 蜜臀国产一区二区三区在线播放| 国产精品调教| 99久久99久久精品国产片果冰| 黄色亚洲在线| 国产精品久久久久久久久免费高清 | 欧美日韩伊人| 成人亚洲欧美| 蜜桃av一区二区| 精品一区视频| 99成人在线| 国产精品二区影院| www成人在线视频| 日韩在线麻豆| 日韩精品水蜜桃| 欧美亚洲免费| 午夜精品影院| 国产精品极品国产中出| 免费成人网www| 国产精品v一区二区三区| 欧美日韩激情| 欧美国产极品| 首页欧美精品中文字幕| 福利一区二区免费视频| 免费久久精品视频| 国产拍在线视频| 日本不卡中文字幕| 日韩免费视频| 欧美日韩伊人| 精品91久久久久| 国产成年精品| 亚洲精品黄色| 久久蜜桃精品| 国产精品22p| 手机精品视频在线观看| 成人日韩精品| 国产精品香蕉| 亚洲资源网站| 国产一区亚洲| 国产91欧美| 欧美专区一区| 麻豆精品91| 伊人久久在线| 国产精品v一区二区三区| 免费在线观看成人| 久久久久久久久久久妇女 | 日本aⅴ亚洲精品中文乱码| 极品日韩av| 国产 日韩 欧美 综合 一区| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 91一区二区三区四区| 欧美一区二区三区久久| 一区在线观看| 色综合www| 岛国av在线播放| 欧美国产另类| 欧美在线看片| 中文字幕日韩高清在线| 伊人影院久久| 99久久激情| 日韩欧美少妇| 国产拍在线视频| 精品一区二区三区视频在线播放| 青青国产91久久久久久| 亚洲人成网站在线在线观看| 久久中文字幕av| 日韩在线免费| 麻豆理论在线观看| 精品91福利视频| 久久精品国产亚洲aⅴ| 久久国产乱子精品免费女| 免费观看在线色综合| 亚洲欧美日韩视频二区| 亚洲免费观看| 婷婷综合在线| 欧美日韩国产综合网| 欧美午夜精品一区二区三区电影| 日韩精品dvd| 中文字幕在线高清| 日韩av自拍| 乱一区二区av| 国产一区二区三区不卡视频网站| 国产精品2区| 美女国产一区二区三区| 国产精品巨作av| 麻豆精品久久久| 欧美精品91| 精品黄色一级片| 国产精品久久久久久久免费观看| 97国产成人高清在线观看| 成人日韩av| 日韩理论视频| 久久在线免费| 在线亚洲成人| 亚洲精品美女91| 亚洲精品乱码久久久久久蜜桃麻豆| 蜜桃视频免费观看一区| 亚洲欧美网站在线观看| 欧美日韩午夜| 精品国产a一区二区三区v免费| 中文字幕色婷婷在线视频| 久久精品成人| 国产亚洲午夜| 日韩有吗在线观看| 国产日韩欧美中文在线| 久久亚洲道色| 夜鲁夜鲁夜鲁视频在线播放| 美女网站一区| 亚洲青青久久| 欧美精品不卡| www.51av欧美视频| 亚洲天堂久久| 视频一区中文字幕国产| 久久精品av麻豆的观看方式| 精品中文字幕一区二区三区四区| 日韩一区二区中文| 视频一区中文字幕国产| 国产无遮挡裸体免费久久| 国产成人精品999在线观看| 日韩综合精品| 国产精品日本欧美一区二区三区| 日韩欧美激情| 免费在线成人| 亚洲不卡av不卡一区二区| 午夜亚洲一区| 国产亚洲一区二区三区啪| 超级白嫩亚洲国产第一| 午夜国产精品视频| 91精品丝袜国产高跟在线| 精品国产乱码久久久久久1区2匹| 99视频精品全国免费| 婷婷亚洲成人| 丁香婷婷久久| 红桃视频国产精品| 啪啪亚洲精品| 亚洲国产福利| 亚洲三级网址| 日韩福利一区| 亚洲1区在线观看| 久久毛片亚洲| 最新亚洲国产| 国产拍在线视频| 中文不卡在线| 国产精品久久久久蜜臀| 免费黄网站欧美| 国产91在线播放精品| 亚洲中午字幕| 国产一区二区三区四区五区传媒| 日韩午夜av在线| 麻豆视频观看网址久久| 久久大逼视频| 国产精品成人一区二区不卡| 亚洲色图国产| 久久国产亚洲精品| 国产日韩亚洲| 欧洲激情综合| 欧美激情精品| 香蕉精品999视频一区二区| 国产在线不卡一区二区三区| 亚洲三级av| 色综合www| 国产精品啊啊啊| 老司机精品久久|