[ mladenvasic @ 09.04.2005. 19:10 ] @
| Pozdrav svima. Moze li mi neko napisati kompletan kod konverzije broja (int64) u heksadecimalni ekvivalent i obrnuto. U MSDN-u od Visual Studia vec postoji konverzija int64 u hex npr.
int64 i = 1234567890;
char buffer[10];
_i64toa(i,buffer,16)
ali kako da vrijednost buffer-a (heksadecimalnu vrijednost) ponovo vratim u int64 odnosno 1234567890
Ako moze da mi neko hitno odgovori ....
HVALA ... |
[ X Files @ 09.04.2005. 20:38 ] @
Nisam siguran da ovo radi ali evo pa probaj:
unsigned __int64 HexToInt( const char *hexstring )
{
unsigned __int64 veliki;
const char *kopija;
kopija = hexstring;
if ( *kopija == '\0' )
return 0;
veliki = 0;
while ( *kopija != '\0' )
{
if ( !isxdigit( (int)*kopija) )
return 0;
veliki <<= 4;
if ( *kopija <= '9' )
veliki += *kopija++ - '0';
else if ( *kopija >= 'a' )
veliki += *kopija++ - 'a' + 10;
else
veliki += *kopija++ - 'A' + 10;
}
return ( veliki );
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage( HexToInt( "fffffffffffffffff" ) );
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
__int64 i = 18446744073709551615;
char buffer[10];
_i64toa( i, buffer, 16 );
ShowMessage( buffer );
}
[ Mihajlo Cvetanović @ 11.04.2005. 09:44 ] @
Zar ne postoji _atoi64? Mada ja sam uvek pre za sscanf varijantu
if ( sscanf( buffer, "%I64d", &i ) == 1 )
{
// imas broj
}
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.