/**************************************************
*函数名称 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" 涉及到的是一个在Linux环境下运行的程序,用于将包含十六进制数据的文本文件转换为PCM(脉冲编码调制)音频格式的文件。这个过程涉及到多个IT领域的知识,包括文本处理、十六进制与二进制转换、...
用于各种进制转换的Function调用。function hex2str(hex)function str2hex(str)function hex2bin( hexstr ) ---16进制转2进制(逐字转换)
在这个话题中,我们将深入探讨两种常见的数字表示形式:字符串(str)和十六进制(hex)。这两种格式在处理二进制数据、网络通信、编码和解码等场景下都有广泛应用。 首先,让我们了解什么是字符串和十六进制。字符...
2. **Base64String转HexString**:这个过程首先对Base64字符串进行解码,还原成原始的二进制数据,然后再将这些二进制数据每字节拆分成两个十六进制字符,从而得到HexString。 在提供的`DataConvert.sln`和`...
hexStr = dec2hex(decNum) ``` 其中`decNum`是需要转换的十进制数,`hexStr`是返回的十六进制字符串。默认情况下,`dec2hex`处理32位整数,但可以使用第二个参数指定位宽。 3. **64位有符号整数的处理**: 在...
std::vector<uint8_t> hexToBin(const std::string& hexStr) { std::vector<uint8_t> binData; for (char c : hexStr) { binData.push_back(std::bitset(std::hex (c)).to_ulong()); } return binData; } int ...
### MFC 中类型转换:str >> hex >> dec >> str #### 1. 将整型数字转换为字符串 (int to string) 在C++中,通常使用`_itoa`函数来将整型变量转换为字符串。这个函数在`stdlib.h`头文件中定义,并且可以指定不同的...
data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) ) + Character.digit(hex.charAt(i + 1), 16)); } return data; } ``` 在实际应用中,这些转换方法可能会根据具体需求进行调整,例如处理特定的...
hexstring 如:’1C532145697A8B6F’ str 如:’\x1C\x53\x21\x45\x69\x7A\x8B\x6F’ list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F] 各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于...
str2hex - 数据格式转换实用程序。 一种数据转换实用程序,可将文件或字符串转换为十六进制数字编码的不同表示形式,以及 Base64,甚至 MD5。 这是我 10 多年前编写的第一个 C 程序之一,所以不要严格判断:) 建造 ...
字符转十六进制值小工具,可以超级方便将字母、数字、字符、汉字转HEX码,硬件编程得力小助手 // 1234567890 // 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x30 // abcdefg // 0x61 0x62 0x63 0x64 0x65 0x66 ...
hexStr = bin2hex(binStr) ``` 在这里,`binStr`是一个包含0和1字符的字符串,表示一个二进制数。`hexStr`则是返回的十六进制表示的字符串。MATLAB会按照每4位二进制转换为1位十六进制的规则进行转换,因为一个十六...
### Python中hexstring、list与str之间的转换方法详解 在Python编程中,经常需要处理不同格式的数据,尤其是在涉及网络通信、加密解密等场景时,数据格式的转换尤为重要。本文将详细介绍如何在Python中实现hex...
将字符串直接转换为hex格式,用于数组格式的保存
HexStr := IntToHex(Ord(AscChar), 1); // 将ASCII值转换为十六进制字符串 writeln(HexStr); // 输出:'0D' end; ``` 2. 十六进制字符串转ASCII: - 使用`System.SysUtils`单元的`HexToChar`函数,传入包含两...
本Android项目代码,经过本人的一个星期调式,相比于其它Android的串口通信资源,靠谱多了,故提供给各需要者使用。能够调试单片机上的蓝牙模块,实现与蓝牙模块的串口通信...支持String,hex,Unicode等模式输入输出。
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...
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; } ``` 需要注意的是,上述...
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...