`
xusaomaiss
  • 浏览: 609235 次
  • 性别: 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;
}

分享到:
评论

相关推荐

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

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

    str2hex.rar

    修正版本,linux下使用"sh excute.sh strtohex"编译并执行,自动跳过文件的空白符、换行符。将十六进制的文本文件转成PCM格式的文件。

    MFC 数值转换 CString >> HEX>>DEC>> CString

    // 0D&gt;&gt;0x64, str&gt;&gt;hex CString strDec, strHex; strHex = readData; DWORD dwHex = strtoul(strHex, NULL, 16); strDec.Format(_T("%ld"), dwHex); MessageBox (strDec); //0X64&gt;&gt;100, hex &gt;&gt; dec &gt;&gt;str 其他...

    str vs hex格式转换

    这个小程序可以将一个十六进制的字符串转化为十进制的数 同时,也可以将十进制的数转化为十六进制的字符串。 注意:十六进制的字符串,不是十六进制的数。

    对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 程序之一,所以不要严格判断:) 建造 ...

    HexString和Base64String的相互转换

    测试时通常会用到一些hexstring参数,而在传递时需要转换成Base64String。这个小程序,能够很好的将HexString和Base64String相互转换。

    str2hex.exe

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

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

    提取CString中的Hex int,然后输出。假设 字符串是 “10 20 30 40 64 DD”,需要把 “64” 输出.

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

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

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

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

    str2hex - data formats manipulation tool-开源

    警告:项目移至http://github.com/plashchynski/str2hex str2hex是功能强大的数据格式处理工具。 str2hex可以将任何数据(文本)转换为MySQL字符串格式,AT&T /英特尔汇编程序格式,URL格式,HTML格式,Base64格式...

    Python3编码问题 Unicode utf-8 bytes互转方法

    为什么需要本文,因为在对接某些很老的接口的时候,需要传递过去的是16进制的hex字符串,并且要求对传的字符串做编码,这里就介绍...print(hex_str) #字节码转16进制hex的方法 print(bytes.fromhex(hex_str).decode('ut

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

    主要介绍了Java中byte[]、String、Hex字符串等转换的方法,代码很简单,需要的朋友可以参考下

    PHP bin2hex()函数基础实例讲解

    $str = bin2hex("Hello World!"); echo($str); ?&gt; 定义和用法 bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。字符串可通过使用 pack() 函数再转换回去。 语法 bin2hex( _string_ ) 实例 1 把一个字符...

    javascript ASCII和Hex互转的实现方法

    实例如下: [removed] var symbols = " !\"#$%&'()*+,-./0123456789:;&lt;=&gt;?@"; var loAZ = "abcdefghijklmnopqrstuvwxyz";... valueStr = str.toLowerCase(); var hex = "0123456789abcdef"; v

    微信小程序在调用MQTT发布16进制HEX时报错&quot;发送buff和Uint8Array断开&quot;

    微信小程序在调用MQTT发布16进制HEX数据,会报"发送buff和Uint8Array断开"错误,这个是因为品尝发送的是str字符串,判断类型后发送即可,修改了 utils\js\mqtt.min.js 文件发送内容,先判断后发送即可!

    matlab常用函数matlab常用函数

    hex2dec 16-进制串转换为十进制整数 hex2num 16-进制串转换为浮点数 int2str 将整数转换为字符串 lower 把字符串变成小写 mat2str 将数组转换为字符串 num2str 把数值转换为字符串 strcat 把多个串连接成长串 ...

Global site tag (gtag.js) - Google Analytics