Codec工具类
import java.math.BigInteger;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Codec工具类
* Integer.toHexString(),Long.toHexString(),BigInteger.toString(16)均无前导0,和Hex编码不一致,所以不直接用
*/
public class CodecUtil {/**
* 将字节数组编码为HEX编码的字符串
*/
public static String encodeHex(byte[] dataBytes) {
String dataString = null;
dataString = new String(Hex.encodeHex(dataBytes));
return dataString;
} /**
* 将HEX编码的字符串解码为字节数组
*/
public static byte[] decodeHex(String dataString) {
byte[] dataBytes = null;
if (dataString != null) {
try {
dataBytes = Hex.decodeHex(dataString.toCharArray());
} catch (DecoderException e) {
logger.warn(e, e);
}
}
return dataBytes;
} /**
* 以十六进制的无符号整数形式返回一个byte参数的字符串表示形式(有前导0)
*/
public static String toHexString(byte b) {
String dataString = null;
dataString = encodeHex(toByteArray(b));
return dataString;
} /**
* 以十六进制的无符号整数形式返回一个short参数的字符串表示形式(有前导0)
*/
public static String toHexString(short s) {
String dataString = null;
dataString = encodeHex(toByteArray(s));
return dataString;
} /**
* 以十六进制的无符号整数形式返回一个int参数的字符串表示形式(有前导0)
*/
public static String toHexString(int i) {
String dataString = null;
dataString = encodeHex(toByteArray(i));
return dataString;
} /**
* 以十六进制的无符号整数形式返回一个long参数的字符串表示形式(有前导0)
*/
public static String toHexString(long l) {
String dataString = null;
dataString = encodeHex(toByteArray(l));
return dataString;
} /**
* 以十六进制的无符号整数形式返回一个BigInteger参数的字符串表示形式(有前导0)
*/
public static String toHexString(BigInteger b) {
String dataString = null;
dataString = encodeHex(toByteArray(b));
return dataString;
} /**
* 返回一个字节数组,该数组包含此byte的二进制补码表示形式
*/
public static byte[] toByteArray(byte b) {
byte[] dataBytes = null;
dataBytes = new byte[1];
dataBytes[0] = b;
return dataBytes;
} /**
* 返回一个字节数组,该数组包含此short的二进制补码表示形式
*/
public static byte[] toByteArray(short s) {
byte[] dataBytes = null;
dataBytes = new byte[2];
dataBytes[0] = (byte) ((s >>> 8) & 0xff);
dataBytes[1] = (byte) (s & 0xff);
return dataBytes;
} /**
* 返回一个字节数组,该数组包含此int的二进制补码表示形式
*/
public static byte[] toByteArray(int i) {
byte[] dataBytes = null;
dataBytes = new byte[4];
dataBytes[0] = (byte) ((i >>> 24) & 0xff);
dataBytes[1] = (byte) ((i >>> 16) & 0xff);
dataBytes[2] = (byte) ((i >>> 8) & 0xff);
dataBytes[3] = (byte) (i & 0xff);
return dataBytes;
} /**
* 返回一个字节数组,该数组包含此long的二进制补码表示形式
*/
public static byte[] toByteArray(long l) {
byte[] dataBytes = null;
dataBytes = new byte[8];
dataBytes[0] = (byte) ((l >>> 56) & 0xff);
dataBytes[1] = (byte) ((l >>> 48) & 0xff);
dataBytes[2] = (byte) ((l >>> 40) & 0xff);
dataBytes[3] = (byte) ((l >>> 32) & 0xff);
dataBytes[4] = (byte) ((l >>> 24) & 0xff);
dataBytes[5] = (byte) ((l >>> 16) & 0xff);
dataBytes[6] = (byte) ((l >>> 8) & 0xff);
dataBytes[7] = (byte) (l & 0xff);
return dataBytes;
} /**
* 返回一个字节数组,该数组包含此BigInteger的二进制补码表示形式
*/
public static byte[] toByteArray(BigInteger b) {
byte[] dataBytes = null;
dataBytes = b.toByteArray();
return dataBytes;
} /**
* 根据EsmClass返回TpUdhi
* @return
*/
public static int getTpUdhiFromEsmClass(int esmClass) {
int tpUdhi = (esmClass & 0x40) >> 6;
return tpUdhi;
} /**
* 根据TpUdhi返回EsmClass
*/
public static int getEsmClassFromTpUdhi(int tpUdhi) {
int esmClass = tpUdhi << 6;
return esmClass;
} }
Codec工具类的更多相关文章
- Rhino+envjs-1.2.js 在java运行网站js 工具类
java爬虫遇到个页面加密的东西,找了些资料学习学习 做了个java运行js的工具类,希望对大家有用,其中用到client(获取js)可以自行换成自己的client.主要是用了 Rhino就是Java ...
- Mina工具类v1.5
package com.cucpay.fundswap.util; import java.net.InetSocketAddress; import java.nio.charset.Charset ...
- 加密工具类 - CryptoUtils.java
加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载 - CryptoUtils.java.commons-io-2.4.jar.commons-code ...
- JSP图片上传 公共工具类
需要jsmartcom_zh_CN.jar支持. 下载地址: http://files.cnblogs.com/simpledev/jsmartcom_zh_CN.rar <%@page imp ...
- Java操作图片的工具类
操作图片的工具类: import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.a ...
- Apache Commons 工具类介绍及简单使用
转自:http://www.cnblogs.com/younggun/p/3247261.html Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下 ...
- Java图片工具类,完成图片的截取和任意缩放
package com.common.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Renderin ...
- 数据持久化之SP的优化—送工具类
第一点:sp存储的是键值对 getSharedPreferences 第一个參数是你保存文件的名字,第个是保存的模式一般能够默觉得0 先看普通 使用SP 存储String类型字符串吧 SharedPr ...
- linkin大话数据结构--apache commons工具类
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动. 一.Commons BeanUtils 说明:针对Bean的一个工具集.由于Bean往往是有一堆ge ...
随机推荐
- PHP获取Cookie模拟登录
关键字:CURL Cookie CURLOPT_COOKIEJAR CURLOPT_COOKIEFILE 模拟登录 PHP作者:方倍工作室原文:http://www.cnblogs.com/txw19 ...
- sgu 176 Flow construction(有源汇的上下界最小流)
[题目链接] http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=11025 [模型] 有源汇点的上下界最小流.即既满足上下界又满足 ...
- HDU5479 Colmerauer 单调栈+暴力优化
http://acm.hdu.edu.cn/showproblem.php?pid=5749 思路: bestcoder 84 贡献:所有可能的子矩阵的面积和 //len1:子矩阵所有长的和 ;i&l ...
- 暴雪hash算法
你有一个非常大的字符串数组A,现在又有一个字符串B,需要你去检测B是否存在于A中.最简单粗暴的方法是遍历整个A,但是这个方法投入到实际应用时的运行速度是难以接受的.在没有与其他所有字符串比较前怎么知道 ...
- OpenStack Cinder组件支持的块存储设备表
摘自恒天云官网:http://www.hengtianyun.com/download-show-id-18.html OpenStack的Cinder组件底层可以连接多种存储设备和方案,每一个Ope ...
- mac搭建PHP开发环境
在Mac系统上搭建Php服务器环境: LAMP: Linux Apache MySQL PHP MAMP: MACOS APACHE(自带) MYSQL(需自己安装) PHP(自带) 一.APACHE ...
- Native libraries .so.XY failing to link at runtime
What you need to do is edit the configure file. And find out this: SLIBNAME='$(SLIBPREF)$(FULLNAME)$ ...
- Emacs和它的朋友们——阅读源代码篇(转)
正如那本<Code Reading>一书中指出的那样,源代码阅读一直没有被很好的重 视:你上大学的时候有“代码阅读”这门课吗?相信没有. 1 Source Insight 谈到阅读源代码, ...
- openstack domain serverID connect uri
- NSLog说明
%@ 对象 %d,%i 整型 (%i的老写法) %hd 短整型 %ld , %lld 长整型 %u 无符整型 %f 浮点型和double型 %0.2f 精度浮点数,只保留两位小数 %x,%X 二进制整 ...