16进制转byte[]
来源:互联网 发布:关键词优化报价 编辑:程序博客网 时间:2024/06/05 18:59
/** * 16进制的字符串表示转成字节数组 * * @param hexString *16进制格式的字符串 * @return 转换后的字节数组 **/public static byte[] hexStr2ByteArray(String hexString) {if (StringUtils.isEmpty(hexString))throw new IllegalArgumentException("this hexString must not be empty"); hexString = hexString.toLowerCase();final byte[] byteArray = new byte[hexString.length() / 2];int k = 0;for (int i = 0; i < byteArray.length; i++) {//因为是16进制,最多只会占用4位,转换成字节需要两个16进制的字符,高位在先//将hex 转换成byte "&" 操作为了防止负数的自动扩展// hex转换成byte 其实只占用了4位,然后把高位进行右移四位// 然后“|”操作 低四位 就能得到 两个 16进制数转换成一个byte.//byte high = (byte) (Character.digit(hexString.charAt(k), 16) & 0xff);byte low = (byte) (Character.digit(hexString.charAt(k + 1), 16) & 0xff);byteArray[i] = (byte) (high << 4 | low);k += 2;}return byteArray;} /** * 16进制字符串转换成byte数组 * @param 16进制字符串 * @return 转换后的byte数组 */ public static byte[] hex2Byte(String hex) {String digital = "0123456789ABCDEF";char[] hex2char = hex.toCharArray();byte[] bytes = new byte[hex.length() / 2];int temp;for (int i = 0; i < bytes.length; i++) {// 其实和上面的函数是一样的 multiple 16 就是右移4位 这样就成了高4位了// 然后和低四位相加, 相当于 位操作"|" //相加后的数字 进行 位 "&" 操作 防止负数的自动扩展. {0xff byte最大表示数}temp = digital.indexOf(hex2char[2 * i]) * 16;temp += digital.indexOf(hex2char[2 * i + 1]);bytes[i] = (byte) (temp & 0xff);}return bytes;}
原文:http://butterflymacro.iteye.com/blog/1202259
- 16进制转byte[]
- java android 16进制转byte
- java String byte 16
- byte[]
- BYTE
- Byte
- byte
- byte
- byte
- byte
- byte
- byte
- byte
- Java中10进制转byte[]
- 16进制,byte,byte数组之间装换
- java byte转16进制
- android byte与16进制
- Byte数组-> NSData Byte数组->16进制数 16进制数->Byte数组
- POJ 2251 Dungeon Master
- 位bit,字节byte,K,M,G
- struts1中form表单的action配置问题
- 【mysql学习】MYSQL开启错误日志Error Log的方法
- Flex RSL框架 (论及 常见的error # 2032)
- 16进制转byte[]
- 鼠标放上去清空 鼠标放上去清空input
- putty使用技巧-不同颜色显示不同类型的文件
- android mask setXfermode
- 解决跨站脚本注入问题
- android智能手机项目开发小结
- PHP学习笔记——表单数据获取,Session,Cookie
- hadoop学习笔记-hive安装及操作
- ios 之contentmode