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 0x10

    aber kaum

    #define OPT1 1
    #define OPT2 2
    #define OPT3 4
    #define OPT4 8
    #define OPT5 16

    um 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
    32368

    ist 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)


Anmelden zum Antworten