首页
社区
课程
招聘
[求助]c/c++如何从buffer当中读取数据,并且是16进制形式的,求解
发表于: 2017-5-13 21:51 3495

[求助]c/c++如何从buffer当中读取数据,并且是16进制形式的,求解

2017-5-13 21:51
3495

  [求助]c/c++如何从buffer当中读取数据,并且是16进制形式的,求解


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 192
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
char  buffer[10]={1,2,3,4,5,6,7,8,9,10};
int  i;
char  *ptr  =  buffer;
for(i  =  0  ;  i  <  10  ;i++,ptr++)
    printf("%#x",*ptr);
2017-5-16 20:09
0
雪    币: 184
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
/************************************************************************/
/*  itoh函数      将单个字节转化为16进制样式的字符窗                                                    */
/************************************************************************/
void  DosHeaderDlg::itoh(unsigned  int  n,  char  *s)
{
       char  base[16]  =  {  '0',  '1',  '2',  '3',
               '4',  '5',  '6',  '7',
               '8',  '9',  'A',  'B',
               'C',  'D',  'E',  'F'  };
       int  a  =  n;
       int  i  =  0;
       while  (a  !=  0)
       {
               s[i++]  =  base[a  %  16];
               int  n  =  a  /=  16;
       }

       char  szTemp[1]  =  {0};
       memcpy(szTemp,  &s[1],1);
       memcpy(&s[1],  &s[0],1);
       memcpy(&s[0],  szTemp,1);

       //考虑各位数a[1]  =  '\0'的bug
       if  (s[0]  ==  0)
       {
               s[0]  =  48;
       }

       if  (s[1]  ==  0)
       {
               s[1]  =  48;
       }
}
2017-5-18 15:53
0
游客
登录 | 注册 方可回帖
返回