Moin, spricht irgendwas dagegen, das zu tun? Funktioniert mit der momentanen Compilerversion. unsigned char send_byte=0x30; //"0" putchar (send_byte+D0_in); //sendet Ascii 0 wenn I/Obit=0 //oder Ascii 1 wenn I/Obit=1
Da es im ANSI-C keinen Bit-Typ gibt, gibt es auch keine Regel zur Addition. Besser ist daher: putchar( D0_in ? '1' : '0' ); Peter
Hi, da ein Bit (auch wenn du in C++ ein bool nimmst) immer ein Byte lang ist. Sehe ich kein Problem. Ein gewisses Problem tritt auf, wenn in deinem "Bit" z.B. eine 10 drinsteht. Diese 10 wird auch als eins gewertet. Aber deine Ausgabe macht halt irgendwas. Peters Schreibweise ist mit Sicherheit portabler. Auch wenn die Schreibweise mit dem ? für mich immer wieder blöde zu lesen ist. Oryx
bei mir (CodeVision) gibts aber den Bit-Typ, und der belegt auch wirklich nur ein Bit. Ich muss noch ein paar (16) Bytes Programmspeicher schinden, die 3.Erweiterung von Kundenseite bringt mich jetzt langsam in Nöte, also bin ich scharf auf jedes Byte. Peters Lösungs braucht 6 word, (kannte ich noch gar nicht), die "klassische" Variante if (d1_in) putchar (0x31); else putchar (0x30); ist mit 7 word dabei, putchar (0x30+d1_in) braucht nur 5 word, also lasse ich dass jetzt erstmal so. Falls ich genug Luft finde, kommts wieder raus. Besten Dank.
Hallo Leute, in C++ gibts tatsächlich eine Möglichkeit genau ein Bit zu benutzen für eine bool Variable. Die meisten (zumindest gcc) C - Compiler unterstützen diese Typen ebenfalls. Versucht mal: // bool b :1; Gruß Marcus
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.