C语言版的16进制与字符串互转函数

转载 2015年07月09日 16:43:23
http://www.cnblogs.com/nio-nio/p/3309367.html

/*
// C prototype : void StrToHex(BYTE *pbDest, BYTE *pbSrc, int nLen)
// parameter(s): [OUT] pbDest - 输出缓冲区
// [IN] pbSrc - 字符串
// [IN] nLen - 16进制数的字节数(字符串的长度/2)
// return value: 
// remarks : 将字符串转化为16进制数
*/
void StrToHex(BYTE *pbDest, BYTE *pbSrc, int nLen)
{
char h1,h2;
BYTE s1,s2;
int i;

for (i=0; i<nLen; i++)
{
h1 = pbSrc[2*i];
h2 = pbSrc[2*i+1];

s1 = toupper(h1) - 0x30;
if (s1 > 9) 
s1 -= 7;

s2 = toupper(h2) - 0x30;
if (s2 > 9) 
s2 -= 7;

pbDest[i] = s1*16 + s2;
}
}

/*
// C prototype : void HexToStr(BYTE *pbDest, BYTE *pbSrc, int nLen)
// parameter(s): [OUT] pbDest - 存放目标字符串
// [IN] pbSrc - 输入16进制数的起始地址
// [IN] nLen - 16进制数的字节数
// return value: 
// remarks : 将16进制数转化为字符串
*/
void HexToStr(BYTE *pbDest, BYTE *pbSrc, int nLen)
{
char ddl,ddh;
int i;

for (i=0; i<nLen; i++)
{
ddh = 48 + pbSrc[i] / 16;
ddl = 48 + pbSrc[i] % 16;
if (ddh > 57) ddh = ddh + 7;
if (ddl > 57) ddl = ddl + 7;
pbDest[i*2] = ddh;
pbDest[i*2+1] = ddl;
}

pbDest[nLen*2] = '\0';
}


C语言将16进制的数转换为字符串的方法(改进)

C语言中的char是一字节,也就是8个二进制位,正好可以表示成2个16进制的数。本文介绍了将无符号的char转为字符的方法。...
  • geek_monkey
  • geek_monkey
  • 2016年05月11日 10:53
  • 6646

C/C++处理十六进制数和字符串

原文站点:https://senitco.github.io/2017/06/07/string-processing/  C/C++处理十六进制数和字符串小结,包括十六进制数组和字符串的相互转换,二...
  • Zachary_Co
  • Zachary_Co
  • 2017年12月13日 18:07
  • 330

C语言将16进制的数转换为字符串的方法

将16进制的数据改为字符串,也就是0xAB,改成“AB”。。。虽然看上去没什么用。...
  • geek_monkey
  • geek_monkey
  • 2016年05月10日 18:25
  • 13221

C语言实现字节流与十六进制字符串的相互转换

原文出自:http://blog.csdn.net/qq387732471/article/details/7360988 //字节流转换为十六进制字符串 void ByteToHexStr...
  • pingD
  • pingD
  • 2014年12月15日 16:58
  • 27772

C语言实现字节流与十六进制字符串的相互转换

[cpp] view plain //字节流转换为十六进制字符串   void ByteToHexStr(const unsigned char* source, char* dest, in...
  • qing666888
  • qing666888
  • 2016年03月29日 22:55
  • 1875

C语言十六进制数据同字符串的相互转换

// t4.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #inclu...
  • lee353086
  • lee353086
  • 2010年01月23日 19:50
  • 14482

十六进制转字符串StrToHex,字符串转十六进制HexToStr

// HEXSTR.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include /* // C prototype : void StrToHex...
  • sunflover454
  • sunflover454
  • 2016年04月22日 13:43
  • 889

StrToHex

function strTohex(sChr: string): string;var i, d: integer;begin d := 0; for i := 1 to Length(sChr...
  • haiou327
  • haiou327
  • 2011年06月13日 19:17
  • 665

C语言的16进制输入

#include int main(void) { int a = 0x40; printf("%d",a); for (; 1;); }
  • wangyin159
  • wangyin159
  • 2014年08月07日 08:51
  • 1742

C语言版的16进制与字符串互转函数

C语言版的16进制与字符串互转函数 /* // C prototype : void StrToHex(BYTE *pbDest, BYTE *pbSrc, int nLen)...
  • u013776495
  • u013776495
  • 2016年05月04日 20:53
  • 2318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言版的16进制与字符串互转函数
举报原因:
原因补充:

(最多只允许输入30个字)