Chinaunix

标题: linux下c中怎样将字符串转换为16进制数据?? [打印本页]

作者: oilz    时间: 2003-11-11 11:36
标题: linux下c中怎样将字符串转换为16进制数据??
1.define A 0x01234567
....
NOT(A)是把A逐位求反吗?

2.char a[12]={"aaaaaaaa"};
char *p;
p=malloc(1000);
for(i=0,i<8(9) ,i++)
{
*p++=*a++;
}
for循环中如果是8,那么是不是表示"\0"没有拷贝,而9的话,"\0"也拷贝了那?
将p中内容转换为16进制时,是不是要求字符串最后要有一个"\0"呢?/
作者: noclouds    时间: 2003-11-11 11:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 飞灰橙    时间: 2003-11-11 12:10
标题: linux下c中怎样将字符串转换为16进制数据??
俺怎么看不懂哩!
作者: YeLLoW    时间: 2003-11-11 12:22
标题: linux下c中怎样将字符串转换为16进制数据??
不明白!!
作者: henngy    时间: 2003-11-11 17:04
标题: linux下c中怎样将字符串转换为16进制数据??
什么啊?
作者: oilz    时间: 2003-11-11 17:21
标题: linux下c中怎样将字符串转换为16进制数据??
原帖由 "oilz" 发表:
aaaaaa"};
char *p;
p=malloc(1000);
for(i=0,i<8(9) ,i++)
{
*p++=*a++;
}
for循环中如果是8,那么是不是表示"\0"没有拷贝,而9的话,"\0"也拷贝了那?
将p中内容转换为16进制时,是不是要求字符串最后要有?.........



8,9是i的范围阿,就是一次取8,一次取9
假设p中存的是"adsadsads",结尾无"\0"
如果要转换为16进制,用什么函数,这个函数要不要求最后是"\0"

这回清楚了吧
作者: oilz    时间: 2003-11-12 15:40
标题: linux下c中怎样将字符串转换为16进制数据??
没人知道吗
作者: bingocn    时间: 2003-11-12 15:45
标题: linux下c中怎样将字符串转换为16进制数据??
字符串在计算机中是以二进制的形式存储,根本没有转换不转换的问题,只是你显示的问题。不是吗?
作者: laplace    时间: 2003-11-12 19:31
标题: linux下c中怎样将字符串转换为16进制数据??
maybe strtol
作者: eboymcy    时间: 2003-11-13 18:18
标题: linux下c中怎样将字符串转换为16进制数据??

  1. /****************************
  2.         功能:由16进制字符转换到16进制
  3.         参数:pStrH:要转换的16进制字符,
  4.                 nStrHLen:16进制字符长度
  5.                 pDataB :输出参数,16进制数字
  6. ***********************************************/
  7. int H2B(PBYTE pStrH,int nStrHLen,PBYTE pDataB)
  8. {
  9.         int i;
  10.         if (nStrHLen % 2)
  11.         {
  12.                  return 1;
  13.         }
  14.         for (i=0; i< nStrHLen/2; i++)
  15.         {
  16.                 sscanf((const char *)pStrH+2*i,"%02x",pDataB + i);
  17.         }
  18.         return 0;
  19. }
复制代码

作者: ajsword    时间: 2003-11-14 08:21
标题: linux下c中怎样将字符串转换为16进制数据??
#include <stdlib.h>;
strtol( st_buf, NULL, 16 );
返回值就是st_buf转成得十六进制数




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2