binäre Zahlen in C

Gast #497865
Lesenswert?
• ▲
▼
Hallo,

hätte noch eine Frage und zwar wie ich binäre Zahlen in C angebe, Das 
wird anscheinend nicht so oft benötigt, da ich nicht viel darüber 
gefunden habe. Mir ist schon klar dass ich binäre Zahlen auch in einem 
anderen Format darstellen kann aber ich würds wegen der 
Übersichtlichkeit binär benötigen.

x = 0b11000011; geht nicht.

Vielen Dank!!!!!

lg
Hannes
Gast #497874
Lesenswert?
• ▲
▼
@Hannes:
Das hängt vom Compiler ab. Manche Embedded-C-Compiler unterstützen diese 
(wie Rahul aber schon "anmerkte" alles andere als übersichtliche) 
Schreibweise, es ist jedoch nicht C-Standard und deshalb werden es die 
meisten Compiler nicht unterstützen. Schreib es lieber mit 
Bit-Shift-Operationen. Das ist dann übersichtlich.
Gast #497877
Lesenswert?
• ▲
▼
#define INT16U  unsigned int

INT16U x ;  // ein etwas kurzer Variablenname, aber warum nicht


x = 0xC3 ;  // das entspricht deiner Fragestellung

// Es gibt auch Compiler, die verstehen deine Syntax mit 0b........
// z.B. von ImageCraft
// das ist aber nicht ANSI Standard.

// und schöne Grüsse an den Trolligen, der macht ja immer so hilfreiche
// Postings, super.

// Klaus

Gast #497879
Lesenswert?
• ▲
▼
    Um das Übersichtlich zu halten gibs Kommentar. Mach das nicht so 
Kompliziert verwende Hexadezimal, bei dir jetzt x = 0xC3 oder als 
einfache Dezimalzahl und der Compiler macht draus was du brauchst.

                                    Ciauii
Gast #497882
Lesenswert?
• ▲
▼
>// und schöne Grüsse an den Trolligen, der macht ja immer so hilfreiche
>// Postings, super.

zumindest weiß er, worum es dem Fragesteller geht...


>// Klaus
kein Kommentar...

Wie wäre es denn damit:
1
#define 0b00000001 0x01
2
#define 0b00000010 0x02
3
#define 0b00000011 0x03
4
#define 0b00000100 0x04
5
.
6
.
7
.
8
#define 0b11111110 0xFE
9
#define 0b11111111 0xFF
wäre eine schöne Fleissarbeit...und könnte man vermutlich durch eine 
Tabellenkalkulation erzeugen lassen und als binaer.h einfügen.
Gast #497912
Lesenswert?
• ▲
▼
Klar, so ging's, ist aber nicht toll les- und einprägbar, mit dem Ohhh 
statt Null.

Besser wäre doch gleich nur  b00000011  oder aber  B_00000011
als #define für alle 256 Werte.

Was machen wir aber, wenn jemand auch bis 2^16-1 oder 2^32-1 das braucht 
?
Wird ein bischen lang dann...
Gast #497916
Lesenswert?
• ▲
▼
>Wird ein bischen lang dann...

Ja, und? Ich kann hexadezimal "denken"...
16bit oder sogar 32bit breite Zahlen erhöhen die Übersichtlichkeit 
vermutlich noch stärker...
Die defines sollten aber mit Hilfe eines Programms sehr einfach erzeugt 
werden können.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.