首页
社区
课程
招聘
vc中怎么将10进制整型转为16进制啊~~~~~~~~~~~~~~~~
发表于: 2005-5-29 17:39 17634

vc中怎么将10进制整型转为16进制啊~~~~~~~~~~~~~~~~

lee 活跃值
3
2005-5-29 17:39
17634

然后还有就是如何将16进制整型转为10进制

刚破了一个软件,正在做注册机。。。。

遇到了这个问题。。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (15)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
VB的,
Text1.Text = Hex(123456) '十进制转十六进制输出
Text2.Text = &H123456 '十六进制转十进制输出。

VC的:
char szBuffer[100] = {0};
char szFormat[6] = "%X-%d";
wsprintf(szBuffer,szFormat,12345,0x12345);
输出结果:3039-74565
2005-5-29 18:17
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
grx
3
Delphi 7中:
IntToHex() //10进制到16进制
StrToInt('$'+'A') //16进制到10进制

VC不懂。
2005-5-29 18:17
0
雪    币: 255
活跃值: (175)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
谢谢!!!

汇编中如何实现啊。。。
2005-5-29 18:43
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
5
int a = 15 ;

cout << hex << a << endl ;

输出结果:F
2005-5-29 18:44
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
最初由 lee 发布
谢谢!!!

汇编中如何实现啊。。。

和VC的一样,只需调用wsprintf函数就行了。
2005-5-29 18:47
0
雪    币: 255
活跃值: (175)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
DWORD m_sumber;
char buf[MAX_PATH];
CString str;
GetVolumeInformation("c:\\",NULL,0,&m_sumber,NULL,NULL,NULL,NULL);
str.Format("%ld",m_sumber);
memset(buf,0,sizeof(buf));
wsprintf(buf,"%X",str);
AfxMessageBox(buf);//这样的结果不对啊。。。。
2005-5-29 18:59
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
//改成这样试试。
DWORD m_sumber;
char buf[MAX_PATH];
//CString str; 这一句不要。
GetVolumeInformation("c:\\",NULL,0,&m_sumber,NULL,NULL,NULL,NULL);
//str.Format("%ld",m_sumber); 这一句也不要。
memset(buf,0,sizeof(buf));
wsprintf(buf,"%X",m_sumber); //改成m_sumber。
AfxMessageBox(buf);//这样的结果不对啊。。。。
2005-5-29 19:21
0
雪    币: 255
活跃值: (175)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
9
最初由 小虾 发布
//改成这样试试。
DWORD m_sumber;
char buf[MAX_PATH];
//CString str; 这一句不要。
GetVolumeInformation("c:\\",NULL,0,&m_sumber,NULL,NULL,NULL,NULL);
........


这样确实转为16进制了。。但是是字符串啊。。。

我还要转为16进制整数。。。

atoi不行啊。。。不能将a-f进行转化。
2005-5-29 19:26
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
10
?我所说的就是将整数转成字符输出呀。
如果你要将字符转成整数只有自己写函数了,很简单的。
2005-5-29 19:34
0
雪    币: 255
活跃值: (175)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11
谢谢哦。。

麻烦了你好多次啊。。。呵呵~~~~~~~
2005-5-29 19:36
0
雪    币: 671
活跃值: (723)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
12
将字符转为整数用_atoi()
2005-5-29 21:28
0
雪    币: 288
活跃值: (415)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
13
10进制的数转为16进制的数?
没必要转啊,只要输出的时候化为16进制输出就可以了
如下面的VC代码:
int a=10; //10进制
int b=0x10; //16进制
int c;
c=a+b;
CString ss;
ss.Format("10进制:%d  16进制:%x",c,c);
2005-5-29 22:51
0
雪    币: 234
活跃值: (370)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
14
C语言怎么弄啊
#include <stdio.h>
main()
{
char name[80];
int a,b,c,sum;
sum=0;
printf("input your name:\n");
gets(name);
a=strlen(name);
for(b=0;b<a;b++)
{c=name;    我想把字符数组的ASC转化位16进制,怎么弄?
c=c<<4+c;
c=c%111;
sum=sum+c;};
sum=sum*sum;

汇编代码:
0040143A  |> 3E:0FBE942E F4>/MOVSX EDX,BYTE PTR DS:[ESI+EBP-10C]      依次取注册名ASC16进制
00401443  |. 8BC2           |MOV EAX,EDX                              转移
00401445  |. BF 6F000000    |MOV EDI,6F                               特殊值
0040144A  |. C1E0 04        |SHL EAX,4                                左移4位
0040144D  |. 03C2           |ADD EAX,EDX                              与原来值加
0040144F  |. 99             |CDQ                                      扩展,EDX清0
00401450  |. F7FF           |IDIV EDI                                 EAX=EAX/6F
00401452  |. 03DA           |ADD EBX,EDX                            除法的余数相加   
00401454  |. 46             |INC ESI
00401455  |. 3BF1           |CMP ESI,ECX
00401457  |.^7C E1          \JL SHORT .0040143A
2005-5-31 17:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
FormatToHex(char *pOut,BYTE *pIn,int size)
{
  char dl,dh;
  for(int k=0;k<size;k++)
  {
    dl=pIn[k] & 0x0F;

         (dl<0xA)? pOut[3*k+1]=dl+0x30 : pOut[3*k+1]=dl+0x37;
                                               
        dh=(pIn[k] >> 4) & 0x0F;   
                                               
                 (dh<0xA)? pOut[3*k]=dh+0x30 : pOut[3*k]=dh+0x37;  
                                               
         pIn[3*k+2]=0x20;           
        }
}
使用的时候请务必保证pOut数组的大小
2005-6-1 02:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
修正了一处错误
FormatToHex(char *pOut,BYTE *pIn,int size)
{
  char dl,dh;
  for(int k=0;k<size;k++)
  {
    dl=pIn[k] & 0x0F;

          pOut[3*k+1]=((dl<0xA)? dl+0x30 : dl+0x37);

  dh=(pIn[k] >> 4) & 0x0F;

      pOut[3*k]=((dh<0xA)? dh+0x30 : dh+0x37);

   pOut[3*k+2]=0x20;
  }
}

char asc[]="123";
static  char buf[100];
FormatToHex(buf,asc,sizeof(asc));
输出字符串--"31 32 33 00 "
2005-6-1 03:13
0
游客
登录 | 注册 方可回帖
返回
//