能力值:
( LV2,RANK:10 )
|
-
-
2 楼
比如显示的话 直接sprintf 或者 cout
返回值的处理就像
int i=18;
cout<<hex<<i; //这样简单可以的???
|
能力值:
(RANK:410 )
|
-
-
3 楼
char *itoa(int value, char *string, int radix)
将整形数value转换为其等价的字符串
value 要转化的数值,radix 转换的进制,如10表示按十进制转换
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
小虾班班,很高兴又见到您了... 不过有一点点小问题不明白,请问一下小虾班班
#include <windows.h>
char* WINAPI hextodec (int num)
{
char *buf=new char[10];
itoa(num,buf,16);
return buf; //转换16进制很正常// 但是10进制没变化.怎么回事?
}
小虾班班 能不能请您帮偶写一个DLL. 函数像这样子hextodec ("0xAABBCC") 返回 11189196 的例子. 谢谢您了...
|
能力值:
(RANK:330 )
|
-
-
5 楼
sscanf = 你的hextodec
|
能力值:
(RANK:410 )
|
-
-
6 楼
//该函数接受一个数据字符串参数,这个字符串前面如果有"0x"前导符则以十六进制字符转十进制数值,如果不加"0x"前导符号,则以十进制字符转十进制数值。如HexToDec("12") return 12,HexToDec("0x12") return 18,如果该数据中包含有不是属于数据的字符(如'ghijk'等字符),则函数直接返回0。
int WINAPI HexToDec(char *Str)
{
bool IsHex=FALSE;
int result=0;
int i=0,szLen=0,nHex;
if (Str[0] == '0')
if ((Str[1] == 'x') || (Str[1] == 'X'))
{
IsHex = TRUE;
i = 2;
}
szLen = strlen(Str);
nHex = '0';
for (; i < szLen; i++)
{
if (IsHex)
{
if ((Str[i] >= '0') && (Str[i] <= '9'))
nHex = '0';
else if ((Str[i] >= 'A') && (Str[i] <= 'F'))
nHex = 'A' - 10;
else if ((Str[i] >= 'a') && (Str[i] <= 'f'))
nHex = 'a' - 10;
else
return 0;
result = result * 16 + Str[i] - nHex;
}else
{
if ((Str[i] < '0') || (Str[i] > '9'))
return 0;
result = result * 10 + Str[i] - nHex;
}
}
return result;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
小虾班班也是这样子转的... 没有简单的函数吗? 很谢谢小虾班班哦...我再找找简单的,您的代码我收藏了...
组长的意思是什么呢?~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
int hextodec(char *str)
{
int i;
sscanf(str,"%x",&i);
return i;
}
备份用...谢谢...
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
[QUOTE=wqrsksk;457800] int hextodec(char *str)
{
int i;
sscanf(str,"%x",&i);
return i;
}
备份用...谢谢...[/QUOTE]
return i; ?????
可以返回临时变量?
|
能力值:
( LV13,RANK:760 )
|
-
-
10 楼
int Hex2Dec(LPSTR s)
{
int d,i;
for(i=0;i<strlen(s);i++) //判断是否为正确的十六进制串,不是返回-1
{
if(s[i]>='0' && s[i]<='9' || s[i]>='a' && s[i]<='f' || s[i]>='A' && s[i]<='F' ){}
else { return -1; }
}
sscanf(s,"%x",&d);
return d;
}
|
|
|