Seite 2 von 2

Verfasst: 08.01.2008 01:27
von Froggerprogger
Komisch das der Kompiler das nicht unterstützt...
So richtig brauchen tut man das ja nicht, da ja oktal und dezimal auch Zweierpotenzbasen sind. Also repräsentiert eine Oktalziffer genau 3 und eine Hexadezimalziffer genau 4 Bits.
So wird bswp. 1010 1011 1011 1010 hexadezimal zu 0xABBA, was kürzer zu schreiben ist und nach ein ganz wenig Übung auch leicht zu lesen.

Verfasst: 08.01.2008 16:08
von Andreas_S
Froggerprogger hat geschrieben:
Komisch das der Kompiler das nicht unterstützt...
So richtig brauchen tut man das ja nicht, da ja oktal und dezimal auch Zweierpotenzbasen sind. Also repräsentiert eine Oktalziffer genau 3 und eine Hexadezimalziffer genau 4 Bits.
So wird bswp. 1010 1011 1011 1010 hexadezimal zu 0xABBA, was kürzer zu schreiben ist und nach ein ganz wenig Übung auch leicht zu lesen.
das ist schon klar...

aber so große binärzahlen würd ich ja nicht brauchen...

edit:
es würde sich nur um 1-10 stellige zahlen handeln.
hm... ja eine hexa oder oktal zahl ist sehr kompakt, aber nicht so über sichtlich wie das:

Code: Alles auswählen

    1
   10
  100
 1000
10000
....

Andreas

Verfasst: 08.01.2008 16:32
von #NULL
wenn du einzelne flags setzten willst nimm doch einen shift-operator, oder einfach dec 1,2,4,8,16

Verfasst: 08.01.2008 17:42
von Froggerprogger
Als weitere Alternativen neben obiger Makro oder strtol() zu

Code: Alles auswählen

1
10
100
1000
10000
....
wäre dann also bspw. hexadezimal

Code: Alles auswählen

0x01
0x02
0x04
0x08
0x10
0x20
0x40
0x80
...
bzw. per shift

Code: Alles auswählen

1<<0
1<<1
1<<2
1<<3
1<<4
1<<5
...
Trotzalledem wäre natürlich das Binärliteral manchmal einfach viel schöner.

Verfasst: 08.01.2008 18:23
von Andreas_S
Froggerprogger hat geschrieben:Trotzalledem wäre natürlich das Binärliteral manchmal einfach viel schöner.
Ja das stimmt...

Aber ich versteh einfach nicht warum der Kopiler so was nicht kann... das kann doch eigendlich jede Sprache... PB, Java, Assembler, ...

das mit dem shift sieht nett aus :allright: danke das hilft mir weiter :allright:

Andreas


//edit:

Ok Java kanns auch nicht...

Verfasst: 08.01.2008 22:10
von Zaphod
Ich vermute dass das gewollt ist, damit man nicht in das Big Endian / Little Endian Dilemma gerät, bzw niemand entsprechende Assumption-Fehler einbaut.