Forum: Compiler & IDEs SUPERDILETTANTISCH aber wichtig


von Stephan R (Gast)


Lesenswert?

Ich möchte einem Register einen Wert z.B. 0x00 in 00000000- Schreibweise 
zuweisen.
Welches Zeichen kommt davor statt 0x??

Entschuldigt die Einfachheit der Frage.

von heinz (Gast)


Lesenswert?

0b

von Klaus (Gast)


Lesenswert?

Supperdilettantisch ist es nur, dass AVR-Gcc Tutorial nicht zu lesen.

von Stephan R (Gast)


Lesenswert?

Das mag sein. Aber der Zeitdruck zwingt mich die schnellstmöglichen 
Antworten zu erkämpfen.

Trotzdem schönen Dank für die rasche Antwort!

von Mark B. (markbrandis)


Lesenswert?

heinz schrieb:
> 0b

Ist aber kein Standard-C, soweit ich weiß. Von daher stellt sich die 
Frage ob man es wirklich benutzen sollte.

von Klaus (Gast)


Lesenswert?

Mark Brandis schrieb:
> Ist aber kein Standard-C, soweit ich weiß. Von daher stellt sich die
> Frage ob man es wirklich benutzen sollte.

Ja, sollte man, wenn man GCC benutzt (zumindest, wenn es an der Stelle 
die Lesbarkeit erhöht).

Was ist denn wichtiger, dass der Code möglichst lesbar ist, oder dass er 
auf allen möglichen Compiler funktioniert, obwohl man zu 99% der Fälle 
sowieso nur den einen benutzt? ;-)

von Chris L. (kingkernel)


Lesenswert?

wird die Binäre schreibweise eines wertes nicht von alles comilern 
unterstützt?
wie wird ein wert dort in Binärer Form geschrieben oder gibts das in 
solchen Fällen garnicht?

von Klaus (Gast)


Lesenswert?

Im Standard-C musst du die Konstante dann in Hex mit 0x schreiben. Was 
ja auch eigentlich nicht so schlimm ist, da man an Hex-Zahlen auch 
relativ leicht die binäre Repräsentation erkennen kann.

von Thomas K. (muetze1)


Lesenswert?

Du musst gar nicht, du kannst es aber in Hexadezimal-, Dezimal- oder 
Oktalschreibweise angeben.

von Klaus (Gast)


Lesenswert?

Thomas K. schrieb:
> Du musst gar nicht, du kannst es aber

Ja, natürlich :-)

von Karl H. (kbuchegg)


Lesenswert?

Christian L. schrieb:
> wird die Binäre schreibweise eines wertes nicht von alles comilern
> unterstützt?
> wie wird ein wert dort in Binärer Form geschrieben oder gibts das in
> solchen Fällen garnicht?

An binärer Schreibweise ist ausserhalb der µC Sezene kaum jemand 
interessiert. Und selbst innerhalb der Szene ist die binäre Schreibweise 
meistens zu Recht umstritten. Man braucht sie meistens eigentlich nicht, 
bzw. für fast alle vermeintlichen Einsatzfälle gibt es bessere 
Varianten. Und die paar Fälle, die dann noch übrig bleiben, kann man 
ganz einfach mit der Hex-Schreibweise erschlagen. Ein gestandener 
µC-Programmierer kann sowieso das Bitmuster einer Hex-Zahl ohne 
Nachdenken runterrasseln, Das ist ja gerade das Schöne an Hex, dass es 
eine kompakte Schreibweise für Binärzahlen darstellt, wobei das eine aus 
dem anderen leicht ableitbar (ohne Rechnen zu müssen) ist.

von Klaus (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Und selbst innerhalb der Szene ist die binäre Schreibweise
> meistens zu Recht umstritten.

Ja, ich gebe zu die Binär-Schreibweise verleitet (gerade auf bei 
Anfängern) dazu, sie an stellen einzusetzen, wo sie die Lesbarkeit 
massiv verschlechtern. Auf der anderen Seite finde ich sie aber ganz 
nützlich.

Beispiel: Wenn ich eine Zeichentabelle für eine 7-Segmentanzeige anlege, 
finde ich es ganz praktisch, da man alle Bits direkt setzen kann. 
Ansonsten müsse man sich erstmal 4 Bit überlegen um dann erst das 
Hexzeichen hinzuschreiben.

von Hc Z. (mizch)


Lesenswert?

Für Bitmuster ist die 0b-Schreibweise ganz schön.  Aber während man bei 
0xC0 leicht und zuverlässig erkennt, dass die obersten 2 Bits eines 
Bytes gesetzt sind, ist es schwieriger zu erkennen, dass das bei 
0b110000000 nicht der Fall ist.

von Simon K. (simon) Benutzerseite


Lesenswert?

Klaus schrieb:
> Karl heinz Buchegger schrieb:
>> Und selbst innerhalb der Szene ist die binäre Schreibweise
>> meistens zu Recht umstritten.
>
> Ja, ich gebe zu die Binär-Schreibweise verleitet (gerade auf bei
> Anfängern) dazu, sie an stellen einzusetzen, wo sie die Lesbarkeit
> massiv verschlechtern. Auf der anderen Seite finde ich sie aber ganz
> nützlich.
>
> Beispiel: Wenn ich eine Zeichentabelle für eine 7-Segmentanzeige anlege,
> finde ich es ganz praktisch, da man alle Bits direkt setzen kann.
> Ansonsten müsse man sich erstmal 4 Bit überlegen um dann erst das
> Hexzeichen hinzuschreiben.

Auch hier gibt es eine (meiner Meinung nach) bessere Alternative: 
Schiebeoperator und fertige Defines welche LEDs der 7 Segmentanzeige auf 
welchen Bits liegen.

Dann kann man einfach sowas machen wie
1
uint8_t CharTable[] = 
2
{ //0
3
    (1<<SEG_A) | (1<<SEG_B) | ... ,
4
},
5
...


Das Blöde bei den binären Konstanten ist das lästige Abgezähle mit 
Finger am Monitor, welches Bit jetzt gesetzt ist. Das kann man, wie mein 
Vorposter schon sagt nicht auf Anhieb ablesen.

von Klaus (Gast)


Lesenswert?

Simon K. schrieb:
> Dann kann man einfach sowas machen wie

Ja, das ist auch ne schöne Sache. Dann hat man die eigentliche 
Zeichentabelle auch noch komplett von der Pinbelegung getrennt.

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
Noch kein Account? Hier anmelden.