Habe hier eine einfaches Programm. Dennoch stellt sich ein Problem. Ich würde gerne die eingegebene Dezimalzahl in Hex ausgeben. Dies ist kein Problem aber ich will die Zahl so darstellen. 00-00-00-00 Wie erreiche ich dies. Danke für eure Hilfe. Freundliche Grüsse Luca printf("Geben Sie eine Ganzzahl ein."); printf("\n\n\nGanzzahl:\t"); scanf("%d",&ganzzahl); printf("Ausgabe:\t %.8X ",ganzzahl); jetzige Ausgabe: 00000000 Möchte also einfach alle zwei Zeichen einen Trennstrich (Minus).
Es gibt bestimmt mit C# auch elegantere Lösungen als mit printf, aber in C würde ich es vielleicht spontan so machen:
1 | printf("%02X-%02X-%02X-%02X",zahl>>24 & 0xFF, zahl>>16 & 0xFF, zahl>>8 & 0xFF,zahl & 0xFF); |
Veruch mal so: printf("%X-%X-%X-%X", (ganzzahl>>24)&0xff, (ganzzahl>>16)&0xff, (ganzzahl>>8)&0xff, ganzzahl&0xff ); Edit: Ein paar Sekunden zu langsam ;)
Der Ansatz, den int mit Hilfe von Bit-Shifts in 4 bytes zu zerlegen, ist prinzipiell richtig, aber... Soll es nun C oder C# sein? Bei letzterem gibt es in den Standard-Bibliotheken kein printf zur Ausgabe in die Console. Die geeignete Methode unter C# ist System.Console.Write bzw. ...WriteLine. Formatierungen leisten diese Methoden aber nicht. Hier könnte man z.B. System.String.Format verwenden: byte bp,b1,b2,b3; string s = string.Format("{0:X2}-{1:X2}-{2:X2}-{3:X2}",b0,b1,b2,b3); Gruß Markus
Danke für die schnelle und gute Hilfe funktioniert alles Wunderprächtig. Wünsche euch allen noch ein schönes Wochenende. Freundliche Grüsse Luca
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.