unsigned long long: größte Zahl?



  • Angenommen, dir stehen 32bit für einen Integer zur Verfügung (signed, also mit Vorzeichen), dann hast du im Rechner eine binäre Zahl mit 31 Stellen und einem Vorzeichen, 2^31 = 2.147.483.648. Das ist die Anzahl der darstellbaren Zahlen. Da 0 auch eine darstellbare Zahl ist, ziehst du davon noch eins ab und hast somit 2.147.483.647 als maximalen Wert. Jetzt gibt es noch das Vorzeichenbit, das dir das gleiche nochmal alles als negative Werte geben kann, da es allerdings keinen Unterschied zwischen +0 und -0 gibt, braucht man im negativen Bereich die Anzahl nicht um eins zu beschränken. Insgesamt hast du dann einen Wertebereich von -2.147.483.648 bis +2.147.483.647.



  • ok, danke

    kleine frage:
    meinst du:
    (2 ^ Bitzahl)-1

    oder
    2 ^ (Bitzahl -1)

    ?



  • h-a-l-l-o schrieb:

    ok, danke

    kleine frage:
    meinst du:
    (2 ^ Bitzahl)-1

    oder
    2 ^ (Bitzahl -1)

    ?

    Beides. :p



  • Steffo schrieb:

    h-a-l-l-o schrieb:

    (2 ^ Bitzahl)-1

    oder
    2 ^ (Bitzahl -1)

    Beides. :p

    Nein, nur ersteres.



  • danke.



  • Michael E. schrieb:

    Steffo schrieb:

    h-a-l-l-o schrieb:

    (2 ^ Bitzahl)-1

    oder
    2 ^ (Bitzahl -1)

    Beides. :p

    Nein, nur ersteres.

    Nein, das hängt vom signed oder unsigned ab, wie schon wxSkip geschrieben hat.



  • Steffo schrieb:

    Nein, das hängt vom signed oder unsigned ab, wie schon wxSkip geschrieben hat.

    also ich les hier was anderes:

    wxSkip schrieb:

    Bei unsigned-Typen:
    von 0 bis 2 ^ Bitzahl - 1

    Bei signed-Typen:
    von -2^(Bitzahl-1) bis 2^(Bitzahl-1) - 1



  • Dann lies nochmal...



  • es geht um unsigned:

    wxSkip schrieb:

    Bei unsigned-Typen:
    von 0 bis 2 ^ Bitzahl - 1

    wo steht da jetzt was von klammern? außerdem es zwischen
    2^(Bitzahl-1)
    und
    (2^Bitzahl)-1

    ein unterschied.



  • Rechne doch einfach mal nach:
    8 Bit unsigned : 28 = 256 -> 256 Zahlen darstellbar also ist der Bereich [0, 255] (einschließlich 0 und 255).
    64 Bit unsigned : 264 = 18446744073709551616 -> 18446744073709551616 Zahlen darstellbar also ist der Bereich [0, 18446744073709551615] (einschließlich 0 und 18446744073709551615).
    ➡ 2bitcount-1



  • t-s-c-h-ö-ö mit -ö-ö- schrieb:

    Rechne doch einfach mal nach:
    8 Bit unsigned : 28 = 256 -> 256 Zahlen darstellbar also ist der Bereich [0, 255] (einschließlich 0 und 255).
    64 Bit unsigned : 264 = 18446744073709551616 -> 18446744073709551616 Zahlen darstellbar also ist der Bereich [0, 18446744073709551615] (einschließlich 0 und 18446744073709551615).
    ➡ 2bitcount-1

    also (2^Bitzahl)-1


Anmelden zum Antworten