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工具类的更多相关文章

  1. Rhino+envjs-1.2.js 在java运行网站js 工具类

    java爬虫遇到个页面加密的东西,找了些资料学习学习 做了个java运行js的工具类,希望对大家有用,其中用到client(获取js)可以自行换成自己的client.主要是用了 Rhino就是Java ...

  2. Mina工具类v1.5

    package com.cucpay.fundswap.util; import java.net.InetSocketAddress; import java.nio.charset.Charset ...

  3. 加密工具类 - CryptoUtils.java

    加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载  - CryptoUtils.java.commons-io-2.4.jar.commons-code ...

  4. JSP图片上传 公共工具类

    需要jsmartcom_zh_CN.jar支持. 下载地址: http://files.cnblogs.com/simpledev/jsmartcom_zh_CN.rar <%@page imp ...

  5. Java操作图片的工具类

    操作图片的工具类: import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.a ...

  6. Apache Commons 工具类介绍及简单使用

    转自:http://www.cnblogs.com/younggun/p/3247261.html Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下 ...

  7. Java图片工具类,完成图片的截取和任意缩放

    package com.common.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Renderin ...

  8. 数据持久化之SP的优化—送工具类

    第一点:sp存储的是键值对 getSharedPreferences 第一个參数是你保存文件的名字,第个是保存的模式一般能够默觉得0 先看普通 使用SP 存储String类型字符串吧 SharedPr ...

  9. linkin大话数据结构--apache commons工具类

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动. 一.Commons BeanUtils 说明:针对Bean的一个工具集.由于Bean往往是有一堆ge ...

随机推荐

  1. dwr消息推送

    闲来无事,把自己关于对dwr消息推送的实现过程描述一番. 首先第一步,当然在工程中是加入dwr.jar了,接着在web.xml中配置以下代码 <servlet> <servlet-n ...

  2. linux shell 实现node-webkit的自动跨平台打包

    今天下午发现了个好玩的东西(node-webkit),这东西有一直是我想实现的功能:使用html编写桌面应用,实现跨平台: 具体实现方法:结合chrome浏览器内核和node.js搭建一个跨平台的应用 ...

  3. Spark系列(九)DAGScheduler工作原理

    以wordcount为示例进行深入分析 1  33  ) { 46        logInfo("Submitting " + tasks.size + " missi ...

  4. ubuntu使用问题与解决记录[持续更新]

    1. 添加到计划任务 为脚本增加可执行权限 sudo chmod +x yeelink.sh 将脚本加入cronjob(计划任务) sudo crontab -e 在cornjob文件中添加下面一行, ...

  5. Gym 100818I Olympic Parade(位运算)

    Olympic Parade http://acm.hust.edu.cn/vjudge/contest/view.action?cid=101594#problem/I [题意]: 给出N个数,找出 ...

  6. [iOS微博项目 - 1.3] - 内容对齐 TextAlignment & VerticalAlignment & HorizontalAlignment & contentMode

    四个容易混淆的属性:1. textAligment : 文字的水平方向的对齐方式1> 取值NSTextAlignmentLeft      = 0,    // 左对齐NSTextAlignme ...

  7. Quality Center11初始化失败

    打开start_a.jsp页面总是闪退,原因如下: 初始化失败因为证书签名过期了.把IE选项里证书检查的三项勾掉就好了(检查发行商的证书是否吊销.检查服务器证书吊销.检查已下载的程序的签名)

  8. oracle merge用法

    动机: 想在Oracle中用一条SQL语句直接进行Insert/Update的操作. 说明: 在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录 ...

  9. Global.asax.cs介绍

    转载  http://www.cnblogs.com/tech-bird/p/3629585.html ASP.NET的配置文件 Global.asax--全局应用程序文件 Web.config--基 ...

  10. android WebView将新浪天气为我所用 ------>仅供娱乐

    新浪天气提供了一个网页     http://w.sina.com 浏览器访问: 这效果还可以了哦,直接用webview加载出来,效果也可以了哦,不过,这不是我要的.我不希望在我写的应用里到处铺满si ...