Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » hex byte string zu charstring umwandeln

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ]
010
22.12.2004, 18:12 Uhr
Oliver
S2-Pixelgeneral


Wobei man das noch verkürzen könnte:


C++:
byte tele[1] = {0x77,0x32};
char s[100];
sprintf(s,"%c%c",tele[0],tele[1]);
cout<<s<<endl;


--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
22.12.2004, 18:23 Uhr
Oliver
S2-Pixelgeneral


Oder am besten


C++:
unsigned char tele[2] = {0x77,0x32};
char s[100]={tele[0],tele[1],0};
cout<<s<<endl;


--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
22.12.2004, 20:51 Uhr
~NightHawk
Gast


vielen dank!
hat mir einig arbeit erspart!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
28.12.2004, 11:36 Uhr
~hawk
Gast


ne andere frage,
wie geb ich sie als hex dezimale zahlen aus!??!?
in meinem neuen buch steht nur was von den manipulatoren oct,dex und hex und wie man sie bei COUT anwendet! nur weiß ich leider nicht wie mans bei dieser ausgabe hier machen soll?:
unser byte..:

C++:
BYTE posi[5] = {0x03,0x00,0x00,0,0};


(dem werden zahlen hinzugefügt mim memcpy)
und so die ausgabe:

C++:
char pos[50];
sprintf(pos,"%d %d %d %d",posi[1],posi[2],posi[3],posi[4]);



wenn das byte posi so ankommt:
0x03 0x04 0x5c 0x6a
dann sollte es so ausgegeben werden:
03 04 5c 6a

gruß, nighthawk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
28.12.2004, 13:15 Uhr
Oliver
S2-Pixelgeneral


Statt %d %x nehmen.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
28.12.2004, 17:13 Uhr
enno-tyrant
Frag nicht!


oder:

Code:
std::cout << hex << x-zahl << dec << d-zahl << oct << o-zahl << std::endl;


--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
29.12.2004, 21:21 Uhr
~blood hawk
Gast


n abend! erst mals vielen dank es geht einigermasen!
nur.. wie bekomm ich die fffffs weg wenn ein buchstabe im byte enthalten ist?
sagen wir das packet sieht so aus:
0x13, 0x15,0x62,0x5c
dann gibt er mir das aus: 13 15 62 fffff5c
hoffe dass ist nicht allzuschwierig!
gruß, hawk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
30.12.2004, 11:06 Uhr
Oliver
S2-Pixelgeneral



C++:
char test[]={0x13, 0x15,0x62,0x5c};
char text[100];

sprintf(text,"%x %x %x %x",test[0],test[1],test[2],test[3]);

cout << text;



Hier gibt er bei mir "13 15 62 5c" aus. Zeig mal deinen Code.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
30.12.2004, 11:37 Uhr
~nighthawk
Gast


hmm.. wenn ich ne console sowie bei dir compile gibt ers bei mir auch normal aus!
ganz anders aber hier:

C++:
char posi[] = {0x03,0,0,0,0};


C++:
VOID EXPORT OnDraw(CGameDC* pDC, LPCRECT lpScreenRect)
{char hexz[30];
sprintf(hexz,"%x %x %x %x",posi[1],posi[2],posi[3],posi[4]);
pDC->TextOut(hexz, 300, 535);}



die bytes kommen übrigens so in posi wenn dir das vll hilft:

C++:
memcpy(posi+1,aPacket+1,4);

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
16.01.2005, 12:17 Uhr
Diablo



das mit den verschiedenen typen macht einem kopfzerbrechen!
ich häng gerade an einem neuen problem!
ich will aus einem BYTE[2] ein normales BYTE/INT machen!
hier mal mein code:


C++:
BYTE rpl[2] = {0x00,0x32};
int plr1 = rpl[0];
int plr2 = rpl[1];
int plr3[2] = {rpl[0],rpl[1]};
char plr[2];

//function:
{
sprintf(plr,"%d%d",plr1,plr2);
server->GameSendPacketToGame(rpl,plr3);
}


game send packet to game ist so definiert:

C++:
DWORD    EXPORT GameSendPacketToGame(LPBYTE buf, DWORD len);


lbyte buf ist das packet, das gesendet werden soll (byte rpl) und dword len steht für lengh,
also wie viel bytes von dem packet rpl gesendet werden sollen!
es sollte eine 2 dort stehen (plr3)!

doch wenn ich im 2. parameter plr3 oder plr eintrage kommt dieser compilingerror:

Code:

error C2664: 'int (unsigned char *,unsigned long)' : cannot convert parameter 2 from 'int [2]' to 'unsigned long'


das einzige was ich euch damit sagen will ist, dass ich aus int * ---> int machen will
ich hoffe ihr koennt mir helfen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: