Hallo, ist es möglich eine Zahl Binär einzugeben ? Danke.
Also zumindest für den MSP geht es NICHT, denke, es wird dann generell für alle MCUs sein, da es vom Compiler umgesetzt werden muss.
1000VoltGehirn schrieb: > ist es möglich eine Zahl Binär einzugeben ? Nein, das ist in C nicht vorgesehen. Es gibt einige wenige Compiler, die eine nichtstandardkonforme Erweiterung besitzen, die dann die Verwendung des 0b-Präfixes erlaubt, so etwas sollte man sich aber aus gutem Grund gar nicht erst angewöhnen. Besser ist es, sich mal ein Wochenende damit zu beschäftigen, die 16 möglichen Bitkombinationen für einstellige Hexzahlen zu pauken, das ist eine Zukunftsinvestition.
1000VoltGehirn schrieb: > Da gibts doch sicher ein Macro oder sowas ? Ja, such' mal hier im Forum. Schreibt man dann halt B00000000, B00000001 usw., statt 0b00000000, 0b00000001.
1000VoltGehirn schrieb: > Ist halt echt nervig immer umzurechnen Nein. Ist ein ausgedehnter Nachmittag mit dem Pauken von gerade mal 16 Bitkombinationen.
Rufus Τ. Firefly schrieb:
>...einstellige Hexzahlen zu pauken, das ist eine Zukunftsinvestition.
meinst Du, dass das Dezimalsystem eines Tages vom Hexsystem abgelöst
wird?
MfG
1 | #define B16(y) ( 0##y & 0x0001 \
|
2 | | 0##y >> 2 & 0x0002 \
|
3 | | 0##y >> 4 & 0x0004 \
|
4 | | 0##y >> 6 & 0x0008 \
|
5 | | 0##y >> 8 & 0x0010 \
|
6 | | 0##y >> 10 & 0x0020 \
|
7 | | 0##y >> 12 & 0x0040 \
|
8 | | 0##y >> 14 & 0x0080 \
|
9 | | 0##y >> 16 & 0x0100 \
|
10 | | 0##y >> 18 & 0x0200 \
|
11 | | 0##y >> 20 & 0x0400 \
|
12 | | 0##y >> 22 & 0x0800 \
|
13 | | 0##y >> 24 & 0x1000 \
|
14 | | 0##y >> 26 & 0x2000 \
|
15 | | 0##y >> 28 & 0x4000 \
|
16 | | 0##y >> 30 & 0x8000 )
|
Benutzung sollte selbsterklärend sein...
Wolfgang-G schrieb: > meinst Du, dass das Dezimalsystem eines Tages vom Hexsystem abgelöst > wird? Nein, aber hexadezimale Zahlen zu beherrschen ist eine der essentiellen Grundvoraussetzungen, um Programmieren zu lernen.
gerhard schrieb: > http://supp.iar.com/Support/?note=46979&from=search+result Lustig ist natürlich die Argumentation... Die Aufnahme von 0b als Binärkonstanten in den Compiler lehnen sie aus Portabilitätsgründen ab, aber ein #define 0b0001 akzeptieren sie, obwohl dieses nun ganz eindeutig im Rahmen des C-Standards nicht akzeptabel sein kann: ein Makroname muss ein Bezeichner sein, und ein Bezeichner kann nicht mit einer Ziffer anfangen. Vielleicht sollten die IAR-Nutzer einfach ihren Compilerhersteller mal nerven, dass er die 0b-Konstanten auch mit aufnimmt. Dann steigen die Chancen, dass das C-Standard-Kommittee beim nächsten Standard nicht schon wieder behaupten kann, eine derartige Erweiterung "due to lack of precedence" ablehnen zu müssen.
Jörg Wunsch schrieb: > gerhard schrieb: >> http://supp.iar.com/Support/?note=46979&from=search+result > > Lustig ist natürlich die Argumentation... Die Aufnahme von 0b als > Binärkonstanten in den Compiler lehnen sie aus Portabilitätsgründen > ab, welche Portabilität? Aus dieser Notation folgt kein einziges Problem. 0birgendwas ist vor der Erweiterung kein gültiges 'irgendwas' und nach der Erweiterung ist es eine gültige Zahl. So what? Die Sache mit den #define ist doch bestenfalls eine Krücke. Definier doch mal alle Möglichkeiten die es mit 32 Bit gibt. Da parst sich der Präprozessor einen Ast ab, bis er dann endlich mal weiß, was er aus B100010001000111000000011011101 machen soll. Und 64 Bit stehen schon in den Startlöchern. > steigen die Chancen, dass das C-Standard-Kommittee beim nächsten > Standard nicht schon wieder behaupten kann, eine derartige > Erweiterung "due to lack of precedence" ablehnen zu müssen. Dazu sind die µC-Compiler Hersteller nicht mächtig genug. Wenn Microsoft oder Oracle/Sun da dahinter stehen würden, wäre das alles längst gegessen. Ok, Texas Instruments wäre noch ein nicht zu ignorierender Fürsprecher mit dem man es sich nicht verscherzen sollte. Genauso wie Intel. Die vom Komitee gern gesehene Referenzimplementierung (die auch praktisch zeigt, dass es keine Probleme gibt und prinzipiell machbar ist) existiert ja schon längst.
Karl Heinz Buchegger schrieb: >> Lustig ist natürlich die Argumentation... Die Aufnahme von 0b als >> Binärkonstanten in den Compiler lehnen sie aus Portabilitätsgründen >> ab, > > welche Portabilität? Musst du IAR fragen. Vermutlich der des Sourcecodes auf andere Compiler (als ob das nun deren Sorge sein sollte ;-). > Aus dieser Notation folgt kein einziges Problem. Das sehe ich genauso wie du. > Die Sache mit den #define ist doch bestenfalls eine Krücke. Definier > doch mal alle Möglichkeiten die es mit 32 Bit gibt. Reichlich 4 Milliarden, ist doch überschaubar. Man braucht 53 Zeichen pro Zeile (einschließlich \r\n), macht also so um die 250 GiB für die Datei mit den Makros. Wenn der Hersteller die mit seinem Softwarepaket mitliefert, liegt er doch voll im Trend, dass heutzutage ein von den Nutzern auch ernst genommenes Softwarepaket nicht unter der Größe einer anständigen DVD daher kommen darf. >:-) > parst sich der Präprozessor einen Ast ab Na, ohne 10-GHz-Octalcore-CPU bist du sowieso auf verlorenem Posten. Strom sparen? Das überlassen wir dem Glühlampenverbot. :-) > Die vom Komitee gern gesehene Referenzimplementierung (die auch > praktisch zeigt, dass es keine Probleme gibt und prinzipiell machbar > ist) existiert ja schon längst. Ja, leider hat sie eben vor 1999 noch nicht existiert (zumindest nicht in einer für diese Leute sichtbaren Form).
Jörg Wunsch schrieb: > Karl Heinz Buchegger schrieb: > >>> Lustig ist natürlich die Argumentation... Die Aufnahme von 0b als >>> Binärkonstanten in den Compiler lehnen sie aus Portabilitätsgründen >>> ab, >> >> welche Portabilität? > > Musst du IAR fragen. Vermutlich der des Sourcecodes auf andere > Compiler (als ob das nun deren Sorge sein sollte ;-). Eben. da sollte man bei IAR dann gleich mal nachhaken, wie sie sich eigentlich die Portabilität ihrer ISR Syntax so vorstellen :-) > die Datei mit den Makros. Wenn der Hersteller die mit seinem > Softwarepaket mitliefert, liegt er doch voll im Trend, dass heutzutage > ein von den Nutzern auch ernst genommenes Softwarepaket nicht unter > der Größe einer anständigen DVD daher kommen darf. >:-) Die Festplatten-Industrie muss auch leben! > Ja, leider hat sie eben vor 1999 noch nicht existiert (zumindest nicht > in einer für diese Leute sichtbaren Form). Ich hege ja immer noch die Hoffnung, dass sinnvolle triviale Änderungen es irgendwann dann doch in den Standard schaffen. Bei anderen Dingen ist der Zug ja schon lange abgefahren und man muss mit den Krücken leben.
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.