java中十六进制编码与解码
来源:互联网 发布:联通云计算公司 编辑:程序博客网 时间:2024/06/05 19:52
一、简介
十六进制编码就是把二进制转换十六进制字符串,即是0-9,a-f。或者相反。
实现就是将二进制流,每四位一组,进行编码。
二、代码实现
public class ByteHexMain { public static void main(String[] args) throws Exception { String source = "study hard and make progress everyday"; System.out.println("source : "+source); String hexStr = bytes2HexStr(source.getBytes("utf8")); //编码 System.out.println("encode result : "+ hexStr); String rawSource = new String(hexStr2Bytes(hexStr),"utf8"); //解码 System.out.println("decode result : "+rawSource); } //byte转为hex串 static String bytes2HexStr(byte[] byteArr) { if (null == byteArr || byteArr.length < 1) return ""; StringBuilder sb = new StringBuilder(); for (byte t : byteArr) { if ((t & 0xF0) == 0) sb.append("0"); sb.append(Integer.toHexString(t & 0xFF)); //t & 0xFF 操作是为去除Integer高位多余的符号位(java数据是用补码表示) } return sb.toString(); } //hex串转为byte static byte[] hexStr2Bytes(String hexStr) { if (null == hexStr || hexStr.length() < 1) return null; int byteLen = hexStr.length() / 2; byte[] result = new byte[byteLen]; char[] hexChar = hexStr.toCharArray(); for(int i=0 ;i<byteLen;i++){ result[i] = (byte)(Character.digit(hexChar[i*2],16)<<4 | Character.digit(hexChar[i*2+1],16)); } return result; }}运行结果:
source : study hard and make progress everyday
encode result : 7374756479206861726420616e64206d616b652070726f6772657373206576657279646179
decode result : study hard and make progress everyday
阅读全文
0 0
- java中十六进制编码与解码
- java中Base64编码与解码
- java 编码与解码
- java编码与解码
- js 编码解码 与 java编码解码
- js 编码解码 与 java编码解码
- 【转】Java中实现字符串与十六进制编码相互转换
- java中BASE64与urlUncode的编码与解码
- java中的编码与解码
- java 中的编码与解码
- java url编码与解码
- java unicode编码与解码
- Java字符串编码与解码
- encodeURIComponent编码与解码--java
- Java哈夫曼编码与解码
- Java中的编码与解码
- java字符解码与编码
- java 中对url的编码与解码
- jQuery 中的proxy()和delegation()方法
- JZOJ 5163【NOIP2017模拟6.25】PS的烦恼
- Linux下rpm及yum安装jdk
- python与数据挖掘-笔记2
- eval调研
- java中十六进制编码与解码
- 安装MyEclipse插件svn
- 手工创建cdb数据库(create database语句)
- Python核心数据类型及其操作
- 数据库事务使用
- JS原生放大镜
- box-shadow属性的详细描述和兼容性测试
- MySQL5.6免安装版环境配置图文教程
- android Parcelable中boolean与枚举的写法