`
hunray
  • 浏览: 221611 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

字节流、字符串、16进制字符串转换

    博客分类:
  • Java
阅读更多

/**
 * @Package:
 * @ClassName:TypeConversion
 * @Description:字节流、字符串、16进制字符串转换
 * @author:xk
 * @date:Jan 8, 2013 5:00:08 PM
 */
public class TypeConversion {
    /**
     * @Title:bytes2HexString
     * @Description:字节数组转16进制字符串
     * @param b
     *            字节数组
     * @return 16进制字符串
     * @throws
     */
    public static String bytes2HexString(byte[] b) {
        StringBuffer result = new StringBuffer();
        String hex;
        for (int i = 0; i < b.length; i++) {
            hex = Integer.toHexString(b[i] & 0xFF);
            if (hex.length() == 1) {
                hex = '0' + hex;
            }
            result.append(hex.toUpperCase());
        }
        return result.toString();
    }

    /**
     * @Title:hexString2Bytes
     * @Description:16进制字符串转字节数组
     * @param src
     *            16进制字符串
     * @return 字节数组
     * @throws
     */
    public static byte[] hexString2Bytes(String src) {
        int l = src.length() / 2;
        byte[] ret = new byte[l];
        for (int i = 0; i < l; i++) {
            ret[i] = (byte) Integer
                    .valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue();
        }
        return ret;
    }

    /**
     * @Title:string2HexString
     * @Description:字符串转16进制字符串
     * @param strPart
     *            字符串
     * @return 16进制字符串
     * @throws
     */
    public static String string2HexString(String strPart) {
        StringBuffer hexString = new StringBuffer();
        for (int i = 0; i < strPart.length(); i++) {
            int ch = (int) strPart.charAt(i);
            String strHex = Integer.toHexString(ch);
            hexString.append(strHex);
        }
        return hexString.toString();
    }

    /**
     * @Title:hexString2String
     * @Description:16进制字符串转字符串
     * @param src
     *            16进制字符串
     * @return 字节数组
     * @throws
     */
    public static String hexString2String(String src) {
        String temp = "";
        for (int i = 0; i < src.length() / 2; i++) {
            temp = temp
                    + (char) Integer.valueOf(src.substring(i * 2, i * 2 + 2),
                            16).byteValue();
        }
        return temp;
    }
    
    /**
     * @Title:char2Byte
     * @Description:字符转成字节数据char-->integer-->byte
     * @param src
     * @return
     * @throws
     */
    public static Byte char2Byte(Character src) {
        return Integer.valueOf((int)src).byteValue();
    }
    
        /**
     * @Title:intToHexString
     * @Description:10进制数字转成16进制
     * @param a 转化数据
     * @param len 占用字节数
     * @return
     * @throws
     */
    private static String intToHexString(int a,int len){
        len<<=1;
        String hexString = Integer.toHexString(a);
        int b = len -hexString.length();
        if(b>0){
            for(int i=0;i<b;i++)  {
                hexString = "0" + hexString;
            }
        }
        return hexString;
    }
    
    
    public static void main(String args[]) {
        System.out.println(hexString2String("3133383131313536373838"));
    }
}

分享到:
评论

相关推荐

    易语言字节集转换16进制文本源码

    在易语言中,可以使用`十六进制字符串`函数将字节转换成16进制字符串。 4. **拼接16进制字符串**:将转换后的16进制字符串逐个连接起来,形成完整的16进制文本。 5. **输出或存储**:最后,你可以选择将16进制文本...

    16进制字符串显示图片工具

    "16进制字符串显示图片工具" 是一个专门用来将16进制字符串转换为可视图像的应用程序。这个工具基于C#(简称CS)语言构建,利用其丰富的库函数和面向对象的特性,实现了从16进制数据到图像的转换功能。C#中的System....

    java16进制与字符串的转换.pdf

    在 Java 中,我们可以使用 `HexString2Bytes` 函数将 16 进制字符串转换为 byte 数组。该函数接受一个参数 src,即 16 进制字符串,然后将其转换为 byte 数组。 ```java public static byte[] HexString2Bytes...

    十六进制字符串文本转换成字符流

    本程序主要用于将从串口助手等软件中获取的JPG图片十六进制字符串转换为字节流,以便能够直接观看。 十六进制字符串文本存放到in.txt中,该程序将其转换成图片in.jpg 其中输入文档为“in.txt”,输出文件为“in.jpg...

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

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

    Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)

    问题描述 最近做一个项目,是用Python进行相关的串口操作...首先,我们需要知道的是,我们首先,需要用字符串构造成上面的指令,然后我们将它转换成bytes。我们可以使用encode()函数将字符串转为bytes格式: 然后我们

    将图片转换成16进制代码,同时也可将16进制代码转换成jpg图片

    整个图片的数据流会被转换成一串16进制字符串,可以写入文本文件或数据库中。 4. **16进制转图片**: 当需要恢复图片时,16进制字符串需要反向转换。首先,将16进制字符串拆分成单个字节,然后将每个字节转换回二...

    VB.NET 字符串与二进制间的转换

    6. **二进制与十六进制字符串转换** 有时我们需要将二进制数据表示为十六进制字符串。可以使用`BitConverter.ToString(bytes)`,但结果会包含破折号,可通过`String.Replace("-", "")`去除。逆向转换则需要手动...

    字符串转十进制或16进制.pdf

    首先,字符串到数字的转换可以分为两类:将十六进制字符串转换为十六进制字节流,以及将由十六进制或十进制数字组成的字符串转换为对应的整数。 在介绍具体的函数代码之前,我们需要了解一些基本的编程概念和函数。...

    易语言优化字节集与16进制文本互换源码

    易语言提供了`取字节集数据`命令来获取字节集中的单个字节,然后可以使用`整数转16进制字符串`命令将字节转换为16进制字符串。对于整个字节集,需要循环遍历每个字节并进行转换,最后将这些16进制字符串拼接起来形成...

    生僻字与16进制的转换

    将这两个字节转换为16进制字符串。 3. 输出16进制表示:将处理后的16进制字符串连接起来,形成整个文本的16进制表示。 反过来,从16进制转换回GBK编码的过程: 1. 解析16进制字符串:将16进制字符串按每两个字符一...

    PB串口通信支持16进制.rar

    1. 发送16进制数据:考虑到串口通信通常涉及原始的二进制数据,此部分可能实现了将16进制字符串转换为字节序列,并通过SerialPort对象发送出去的功能。需要注意的是,由于空格在二进制数据中不被允许,因此发送的...

    STM32串口实验+自定义协议接收16进制数据+发送1个(2个)字符+发送字符串函数.zip

    每接收一个字符,需要判断它是否为有效十六进制字符,并将其转换为对应的二进制值。 4. **数据存储**:接收到的十六进制数据需要存储在内存中。这通常涉及开辟内存空间,使用数组或者结构体来保存数据。同时,还...

    netty服务器解析16进制数据

    例如,可以创建一个 `HexDecoder` 和 `HexEncoder`,分别处理从16进制字符串到字节的转换和反之的过程。这些处理器可以被添加到Netty的管道(`ChannelPipeline`)中,以便在数据传输时自动应用。 6. **...

    VC++串口控件的16进制收发程序(VC6.0开发环境)

    发送时,将16进制字符串转换成字节流,接收时将字节流还原为16进制字符串。 3. 数据校验:为了确保数据的完整性和准确性,可以使用CRC(循环冗余校验)或其他校验算法来检查接收到的数据是否与发送的数据一致。 4....

    c++ TcpServer简单16进制

    - **解析16进制字符串**:如果接收到的是16进制字符串,我们需要将其转换回原始字节。这通常涉及解析每个两位的16进制数字,并用`std::stoul`或类似方法转换为整数,然后再组合成字节序列。 - **数据校验**:确保...

    字符串与十六进制互相转换

    - 使用`AnsiBytesToString`和`IntToHex`函数:你可以先将字符串转换为字节数组,然后逐个字节转换为十六进制字符串。例如,`IntToHex(Ord(Char),2)`可以将一个字符转换为两位的十六进制字符串。 - 或者,你可以...

    socket传输16进制客户端

    这可以通过编程语言内置的函数实现,比如在Python中可以使用`int(hex_string, 16)`,将16进制字符串转换为整数,再用`bin()`函数将其转为二进制字符串。 3. **Socket创建与连接**: 创建Socket客户端通常包括两步...

    通讯.zipRS232通讯 字符串输入和16进制输入

    这通常涉及将16进制字符串转换为整数,然后将整数转换为字节: ```cpp CString hexInput = "0A"; int hexValue = _ttoi(hexInput); BYTE byteToSend = static_cast(hexValue); m_SerialPort.Write(&byteToSend, 1); ...

Global site tag (gtag.js) - Google Analytics