Warum werden Zahlen bei Bit-Manipulationen (fast) immer hexadezimal geschrieben?
-
Hoi, also die Frage steht ja bereits im Titel!
man sieht ja z.B. oft
#define OPT1 0x01
#define OPT2 0x02
#define OPT3 0x04
#define OPT4 0x08
#define OPT5 0x10aber kaum
#define OPT1 1
#define OPT2 2
#define OPT3 4
#define OPT4 8
#define OPT5 16um dann mit (option&OPTX) ein Bit auslesen zu können. Gibt es dafür irgendeinen Grund?
-
wenn man das weiterführt hat man bei hex immer den selben ablauf.
0x0001
0x0002
0x0004
0x0008
0x0010
0x0020
...also immer verdoppeln und bei 8 um eine stelle schieben.
dezimal wird das bei grossen zahlen recht mühsam
1
2
3
4
...
1024
2048
4096
8092
16184
32368ist doch mühsam mit solchen zahlen. ausserdem sieht mans dann den grossen zahlen garnicht an, dass sie zwierepotenzen sind.
-
Denke mal vor allem ist es die lesbarkeit. Nen hex wert kannst du ohne groß zu rechnen in ne binärzahl umwandeln (eine hex-ziffer sind immer 4 bit), bei ner dezimal-zahl musst immer erst anfangen rumzurechen.
bsp:
dez 1234 --> musst erst nachdenken
hex 4D2 --> siehst sofort (4 = 0100, D=1101, 2=0010 --> 0100 1101 0010)