Hallo Kollegen, kann man unter C eine im binären Format ausgeben lassen? Gibt es, wie bei Hex = x oder Dezimal = d, auch einen Buchstaben für das binäre Format? Danke.
meines wissens nach (un meiner helpfile nach) kann printf (das meinst du doch wohl) das nicht direkt. sollte aber kein problem sein, soetwas selber zu machen
meinst du sowas: 0b11111111 = 0xFF = 256 ? oder meinst du, dass der compiler statt eine HEX Datei eine Binary Datei erzeugt ? Welchen Compiler benutzt du ? Wenn du WinAVR benutzt kann man das einfach in dem Makefile umstellen, da sind sogar die beispielwerte angegeben. MfG Axos
@axos ja ich meine schon den ersten fall. möchte eine dezimale zahl als binäre zahl darstellen. hast du nen kleinen tipp, wie ich an dieses problem rangehen kann?
Oder willst du z.B. 0xFF im binären Format in einen string schreiben ? Dann kann dir wohl nur ne (einfache) routine helfen.
ne möchte schon entweder ne dezimale oder auch ne hexadezimale zahl in eine binäre zahl umwandeln und darstellen.
char string[8]; for (int i=0;i<8;i++,zahl>>1) if (zahl&1) string[i]=1 else string[i]=0;
@Volkmer: du testest ob in die zahl 128 rein geht. Wenn ja dann ziehst du 128 von der dezimalen zahl ab und setzt das erste bit auf 1 ansonsten ist das einste bit 0. Dann testest du auf 64, dann auf 32 und immer so weister bis zu 1. Beispiel: if (zahl > 128) { string[0] = 1; zahl-=128; } if (zahl > 64) { string[1] = 1; zahl-=64; } . . . kann man sicher viel schöner machen aber so ist es wenigstens leicht verständlich.
@Tobi Ok, du bist mir zuvorgekommen, aber ich glaube meine ist leichter zu verstehen für den Anfang.
ist es ganz sicher. aber auch einiges mehr schreibarbeit. eine schleife wäre doch wohl noch drin gewesen :)
mach ich doch... ich schiebe doch rechts raus @axos: bei dir ists in string[0]
Einige kleine Fehler behoben: char string[9]; // Stringlänge! string[8] = '\0'; // abschließende Null for (int i = 0; i < 8; i++, zahl <<= 1) // <<= ! if (zahl & 0x80) string[i] = '1'; // Hochkommata else string[i] = '0'; // Hochkommata Dann sollte es besser funktionieren. MSB landet so in string[0].
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.