`
keepwork
  • 浏览: 332598 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
开发者博客:http://www.developsearch.com

/**
 * 字节转化工具类
 * 
 * @author chenxin
 * @version [版本号, 2012-5-21]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class ByteUtil {

	/**
     * 把16进制字符串转换成字节数组
     * <功能详细描述>
     * @param hex String
     * @return byte[]
     * @see [类、类#方法、类#成员]
     */
    public static byte[] hexString2Bytes(String hex)
    {
        int len = (hex.length() / 2);
        byte[] result = new byte[len];
        char[] achar = hex.toCharArray();
        for (int i = 0; i < len; i++)
        {
            int pos = i * 2;
            result[i] = (byte)(char2Byte(achar[pos]) << 4 | char2Byte(achar[pos + 1]));
        }
        return result;
    }
    
    private static byte char2Byte(char ch)
    {
        switch (ch)
        {
            case '0':
                return 0x00;
            case '1':
                return 0x01;
            case '2':
                return 0x02;
            case '3':
                return 0x03;
            case '4':
                return 0x04;
            case '5':
                return 0x05;
            case '6':
                return 0x06;
            case '7':
                return 0x07;
            case '8':
                return 0x08;
            case '9':
                return 0x09;
            case 'a':
                return 0x0A;
            case 'b':
                return 0x0B;
            case 'c':
                return 0x0C;
            case 'd':
                return 0x0D;
            case 'e':
                return 0x0E;
            case 'f':
                return 0x0F;
        }
        return 0x00;
    }
    
    /**
     * 字节数组 转化成 16进制字符串
     * <功能详细描述>
     * @param b byte[]
     * @return String
     * @see [类、类#方法、类#成员]
     */
    public static String bytes2hexString(byte[] b)
    {
        String stmp = null;
        StringBuffer buf = new StringBuffer();
        
        for (int n = 0; n < b.length; n++)
        {
            stmp = Integer.toHexString(b[n] & 0xff);
            if (1 == stmp.length())
            {
                stmp = "0" + stmp;
            }
            
            buf.append(stmp);
        }
        return buf.toString();
    }


    // 整数到字节数组转换
    public static byte[] int2bytes(int n)
    {
        byte[] ab = new byte[4];
        ab[0] = (byte)(0xff & n);
        ab[1] = (byte)((0xff00 & n) >> 8);
        ab[2] = (byte)((0xff0000 & n) >> 16);
        ab[3] = (byte)((0xff000000 & n) >> 24);
        return ab;
    }
    
    // 字节数组到整数的转换
    public static int bytes2int(byte b[])
    {
        int s = 0;
        s = ((((b[0] & 0xff) << 8 | (b[1] & 0xff)) << 8) | (b[2] & 0xff)) << 8 | (b[3] & 0xff);
        return s;
    }
    
    // 字节转换到字符
    public static char byte2char(byte b)
    {
        return (char)b;
    }




}
分享到:
评论

相关推荐

    标准银联加密算法MacUtil ByteUtil

    《标准银联加密算法MacUtil与ByteUtil详解——基于ANSI-X9.9》 在信息安全领域,数据加密是保障信息传输安全的重要手段之一。在银联交易系统中,为了确保金融交易数据的安全,银联制定了一系列的标准加密算法。本文...

    ByteUtil.java

    在Java编程中,`ByteUtil.java`是一个源代码文件,它可能包含了用于处理这种加密解密操作的实用工具函数。 首先,让我们理解什么是MAC(Message Authentication Code)。MAC是一种用于验证数据完整性和发送者身份的...

    ByteUtil 16进制数据流和字符串的相互转换工具类

    此工具应用于Android端与硬件通过socket通信时,需要传递的字节流,用于16进制数据流和字符串的相互转换工具类

    C#实现十六进制AES的加解密,字节数组工具类

    具体来说,我们将关注两个核心文件:`ByteUtil.cs`和`AesHelper.cs`。 `ByteUtil.cs`通常包含一系列与字节数组操作相关的静态方法。这些方法可能包括: 1. 字节数组到十六进制字符串的转换:用于将字节数组的数据...

    Android代码-安卓串口通讯

    ByteUtil 工具类,字节转string CRC16Verify crc16校验算法 使用 1、将aar包复制到libs目录下 2、如果使用时报错缺少so,请将so文件复制到libs下,并配置 sourceSets { main { jniLibs.srcDirs = ['libs'] }...

    Android代码-CommonLibary

    AESUtils、Base64、ByteUtil、DESUtils、HexUtil、MD5Utils、RSAEncrypt、SharePreUtils。用于数据的安全性及数据持久化 &gt; io &gt; -- BitmapUtils、FileUtils、IOUtils、PhotoUtils、StorageUtils。用于图片、文件、...

    简单的UDP客户端+服务端的实现

    该项目包含了一些辅助工具类,如`byteutil`和IP解析工具类,以方便数据的编码解码和IP地址的操作。 首先,让我们详细了解UDP协议。UDP不像TCP那样建立连接,而是直接将数据报发送出去,无需确认接收方是否收到。...

    音频信息提取

    首先,我们来看`ByteUtil.java`。这个文件很可能包含了一些通用的字节操作工具方法,用于处理二进制数据。在音频信息提取中,由于音频文件通常是以二进制格式存储的,因此理解和操作字节流至关重要。`ByteUtil`可能...

    java导入导出Execl表格数据jar包及依赖包

    在Java开发中,处理Excel数据是一项常见的任务,无论是读取、写入还是更新表格内容,都需要借助特定的库。这个“java导入导出Execl表格数据jar包及依赖包”提供了一整套解决方案,使得在Java项目中操作Excel变得更加...

    C#常用基础工具类源码

    整理了几个在DotNet2.0中C#开发常用的基础工具类,内容如下:StringUtil、ParseUtil、TypeUtil、ByteUtil、NumUtil、XmlUtil、RegexUtil、HashUtil、ColorUtil。

Global site tag (gtag.js) - Google Analytics