`
xusaomaiss
  • 浏览: 615615 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

hex2str str2hex互转

F# 
阅读更多

/**************************************************
  *函数名称 HEX2BIN
  *功能描述 十六进制串转BIN串
  *返回值    转换后整数值
  *************************************************/
uint8 HEX2BIN(uint8 * p_hexstr, uint8 * p_binstr)
{
    uint bin_len = 0;
    uint hex_len = strlen((char *)p_hexstr);
    uint index = 0;

    if (hex_len % 2 == 1)
    {
        hex_len -= 1;
    }

    bin_len = hex_len / 2;

    for(index = 0; index < hex_len; index+=2)
    {
        p_binstr[index/2] = ((HEX2BYTE(p_hexstr[index]) << 4) & 0xF0) + HEX2BYTE(p_hexstr[index + 1]);
    }

    return bin_len;
}

/**************************************************
  *函数名称 HEX2BYTE
  *功能描述 单个十六进制字符转其对应的数值
  *返回值    转换后整数值
  *************************************************/
uint HEX2BYTE(uint8 hex_ch)
{
    if (hex_ch >= '0' && hex_ch <= '9')
    {
        return hex_ch - '0';
    }

    if (hex_ch >= 'a' && hex_ch <= 'f')
    {
        return hex_ch - 'a' + 10;
    }

    if (hex_ch >= 'A' && hex_ch <= 'F')
    {
        return hex_ch - 'A' + 10;
    }

    return 0x00;
}

 

 




#ifndef MIN
#define MIN(a,b)            (((a) < (b)) ? (a) : (b))
#endif

#ifndef MAX
#define MAX(a,b)            (((a) < (b)) ? (b) : (a))
#endif


#define BETWEEN(VAL, vmin, vmax) ((VAL) >= (vmin) && (VAL) <= (vmax))
#define ISHEXCHAR(VAL) (BETWEEN(VAL, '0', '9') || BETWEEN(VAL, 'A', 'F') || BETWEEN(VAL, 'a', 'f'))



/**************************************************
  *函数名称 BYTE2HEX
  *功能描述 将0X0-0xF的整数转换为对应的十六进制字符
  *返回值    转换后的十六进制字符
  *************************************************/
char BYTE2HEX(uint8 int_val)
{
    if (BETWEEN(int_val, 0, 9))
    {
        return int_val + 0x30;
    }

    if (BETWEEN(int_val, 0xA, 0xF))
    {
        return (int_val - 0xA) + 'A';
    }

    return '0';
}



/**************************************************
  *函数名称 BIN2HEX
  *功能描述 转BIN串串十六进制
  *返回值    转换后HEX长度
  *************************************************/
uint BIN2HEX(uint8 * p_binstr, uint bin_len, uint8 * p_hexstr)
{
    uint32 index   = 0;
    uint32 hex_len = bin_len * 2;

    for (index = 0; index < bin_len; index++)
    {
        p_hexstr[index * 2] = BYTE2HEX((p_binstr[index] >> 4) & 0x0F);
        p_hexstr[(index * 2) + 1] = BYTE2HEX(p_binstr[index] & 0x0F);
    }
   
    return hex_len;
}

分享到:
评论

相关推荐

    str2hex.rar

    标题 "str2hex.rar" 涉及到的是一个在Linux环境下运行的程序,用于将包含十六进制数据的文本文件转换为PCM(脉冲编码调制)音频格式的文件。这个过程涉及到多个IT领域的知识,包括文本处理、十六进制与二进制转换、...

    进制转换_2进制转16进制_HEX转ASCⅡ_16进制转2进制_ASCⅡ转HEX_

    用于各种进制转换的Function调用。function hex2str(hex)function str2hex(str)function hex2bin( hexstr ) ---16进制转2进制(逐字转换)

    str vs hex格式转换

    在这个话题中,我们将深入探讨两种常见的数字表示形式:字符串(str)和十六进制(hex)。这两种格式在处理二进制数据、网络通信、编码和解码等场景下都有广泛应用。 首先,让我们了解什么是字符串和十六进制。字符...

    HexString和Base64String的相互转换

    2. **Base64String转HexString**:这个过程首先对Base64字符串进行解码,还原成原始的二进制数据,然后再将这些二进制数据每字节拆分成两个十六进制字符,从而得到HexString。 在提供的`DataConvert.sln`和`...

    matlab开发-Int2Hex

    hexStr = dec2hex(decNum) ``` 其中`decNum`是需要转换的十进制数,`hexStr`是返回的十六进制字符串。默认情况下,`dec2hex`处理32位整数,但可以使用第二个参数指定位宽。 3. **64位有符号整数的处理**: 在...

    HEX格式的数据转成BIN格式的数据

    std::vector&lt;uint8_t&gt; hexToBin(const std::string& hexStr) { std::vector&lt;uint8_t&gt; binData; for (char c : hexStr) { binData.push_back(std::bitset(std::hex (c)).to_ulong()); } return binData; } int ...

    MFC 各中类型转换str >> hex >> dec >>str

    ### MFC 中类型转换:str &gt;&gt; hex &gt;&gt; dec &gt;&gt; str #### 1. 将整型数字转换为字符串 (int to string) 在C++中,通常使用`_itoa`函数来将整型变量转换为字符串。这个函数在`stdlib.h`头文件中定义,并且可以指定不同的...

    String(含Hex)与Byte数组互相转换[代码]

    data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) ) + Character.digit(hex.charAt(i + 1), 16)); } return data; } ``` 在实际应用中,这些转换方法可能会根据具体需求进行调整,例如处理特定的...

    对Python3中bytes和HexStr之间的转换详解

    hexstring 如:’1C532145697A8B6F’ str 如:’\x1C\x53\x21\x45\x69\x7A\x8B\x6F’ list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F] 各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于...

    str2hex:数据格式转换实用程序

    str2hex - 数据格式转换实用程序。 一种数据转换实用程序,可将文件或字符串转换为十六进制数字编码的不同表示形式,以及 Base64,甚至 MD5。 这是我 10 多年前编写的第一个 C 程序之一,所以不要严格判断:) 建造 ...

    StrToHex字符转十六进制值小工具.exe

    字符转十六进制值小工具,可以超级方便将字母、数字、字符、汉字转HEX码,硬件编程得力小助手 // 1234567890 // 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x30 // abcdefg // 0x61 0x62 0x63 0x64 0x65 0x66 ...

    MATLAB二进制转十六进制函数

    hexStr = bin2hex(binStr) ``` 在这里,`binStr`是一个包含0和1字符的字符串,表示一个二进制数。`hexStr`则是返回的十六进制表示的字符串。MATLAB会按照每4位二进制转换为1位十六进制的规则进行转换,因为一个十六...

    Python hexstring-list-str之间的转换方法

    ### Python中hexstring、list与str之间的转换方法详解 在Python编程中,经常需要处理不同格式的数据,尤其是在涉及网络通信、加密解密等场景时,数据格式的转换尤为重要。本文将详细介绍如何在Python中实现hex...

    str2hex.exe

    将字符串直接转换为hex格式,用于数组格式的保存

    delphi ASC HEX 互相转换

    HexStr := IntToHex(Ord(AscChar), 1); // 将ASCII值转换为十六进制字符串 writeln(HexStr); // 输出:'0D' end; ``` 2. 十六进制字符串转ASCII: - 使用`System.SysUtils`单元的`HexToChar`函数,传入包含两...

    Android蓝牙串口通信(支持str,hex等模式IO)

    本Android项目代码,经过本人的一个星期调式,相比于其它Android的串口通信资源,靠谱多了,故提供给各需要者使用。能够调试单片机上的蓝牙模块,实现与蓝牙模块的串口通信...支持String,hex,Unicode等模式输入输出。

    Java中byte[]、String、Hex字符串等转换的方法

    int len = (hex.length() / 2); byte[] result = new byte[len]; char[] achar = hex.toCharArray(); for (int i = 0; i ; i++) { int pos = i * 2; result[i] = (byte) (charToByte(achar[pos]) | charToByte...

    float-to-hex.zip_float_float linux_float 转hex_hex float

    return hex_str; // 返回生成的十六进制字符串 } int main() { float test_num = 3.14159265f; printf("Float: %.8f, Hex: %s\n", test_num, float_to_hex(test_num)); return 0; } ``` 需要注意的是,上述...

    Hex-conversion.rar_HEX BCD_bcd 16进制_conversion

    dec_num = hexadecimal_to_decimal(hex_str) return decimal_to_binary(dec_num) # 示例 print(binary_to_decimal('1010')) # 输出:10 print(decimal_to_binary(10)) # 输出:1010 print(decimal_to_hexadecimal...

Global site tag (gtag.js) - Google Analytics