C语言实现字节流与十六进制字符串的相互转换
来源:互联网 发布:大学生linux基础知识 编辑:程序博客网 时间:2024/05/20 06:55
原文出自:http://blog.csdn.net/qq387732471/article/details/7360988
//字节流转换为十六进制字符串
void ByteToHexStr(const unsigned char* source, char* dest, int sourceLen)
{
short i;
unsigned char highByte, lowByte;
for (i = 0; i < sourceLen; i++)
{
highByte = source[i] >> 4;
lowByte = source[i] & 0x0f ;
highByte += 0x30;
if (highByte > 0x39)
dest[i * 2] = highByte + 0x07;
else
dest[i * 2] = highByte;
lowByte += 0x30;
if (lowByte > 0x39)
dest[i * 2 + 1] = lowByte + 0x07;
else
dest[i * 2 + 1] = lowByte;
}
return ;
}
//字节流转换为十六进制字符串的另一种实现方式
void Hex2Str( const char *sSrc, char *sDest, int nSrcLen )
{
int i;
char szTmp[3];
for( i = 0; i < nSrcLen; i++ )
{
sprintf( szTmp, "%02X", (unsigned char) sSrc[i] );
memcpy( &sDest[i * 2], szTmp, 2 );
}
return ;
}
//十六进制字符串转换为字节流
void HexStrToByte(const char* source, unsigned char* dest, int sourceLen)
{
short i;
unsigned char highByte, lowByte;
for (i = 0; i < sourceLen; i += 2)
{
highByte = toupper(source[i]);
lowByte = toupper(source[i + 1]);
if (highByte > 0x39)
highByte -= 0x37;
else
highByte -= 0x30;
if (lowByte > 0x39)
lowByte -= 0x37;
else
lowByte -= 0x30;
dest[i / 2] = (highByte << 4) | lowByte;
}
return ;
}
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- 字节数据与十六进制的相互转换,字符串与十六进制的相互转换
- 在C#语言中十六进制字符串与字节型数组的相互转换
- 字节数组与十六进制字符串之间的相互转换
- 十六进制字节流与字符串的转换
- C语言十六进制数据同字符串的相互转换
- C语言十六进制数据同字符串的相互转换
- C语言十六进制数据同字符串的相互转换
- C语言十六进制数据同字符串的相互转换
- 【代码笔记】iOS-点击一个button,出6个button
- WebRTC 之点对点连接——浏览器
- iOS 支付 [支付宝、银联、微信]
- React学习入门实例
- java导出excel表格
- C语言实现字节流与十六进制字符串的相互转换
- MySQL逗号分割字段的行列转换技巧
- 使用系统的AVMetadataObject类实现二维码扫描
- 关于使用JSONKit一直崩溃
- Java 构造方法,初始化块,静态初始化块
- 03-稀疏矩阵
- 阅读《Android 从入门到精通》(13)——日期选择器
- 小米的神奇是不可复制的,但营销还是独到的!
- postgresql数据库的安装一(源码编译)