if (val & ~0xff) ist doch immer false?



  • Rüdiger hat es ja erklärt.
    Ich habe nicht besonders gut nachgedacht und das 0xff auf 0xffff erweitert (bzw. alles 1).
    Das war das Problem. Jetzt ist es klar 🙂



  • ihoernchen schrieb:

    Ich habe nicht besonders gut nachgedacht und das 0xff auf 0xffff erweitert (bzw. alles 1).

    stell dir einfach vor was ~1, ~2, ~3, usw. sein könnte, also nicht 0. warum sollte ~255 da eine ausnahme machen?
    🙂



  • Das hab ich nicht verstanden.
    ~255 ist null, sofern ich einen 8 bit Datentyp hab.

    Mache ich das auf einen Datentyp > 8 bit habe ich eine Zahl > 255 (bei einem Startwert von 255).
    Mein Problem war, dass ich das 0xff in Gedanken auf 0xffff erweitert habe und nicht auf 0x00ff.



  • mal eine ganz dummer frage: wofür brauchst du das?



  • ihoernchen schrieb:

    Das hab ich nicht verstanden.
    ~255 ist null, sofern ich einen 8 bit Datentyp hab.

    und ~1 ist null, wenn du einen 1-bit datentyp hast. also hast du's ja doch verstanden.
    🙂



  • ghorst schrieb:

    mal eine ganz dummer frage: wofür brauchst du das?

    fricky schrieb:

    ihoernchen schrieb:

    Das hab ich nicht verstanden.
    ~255 ist null, sofern ich einen 8 bit Datentyp hab.

    und ~1 ist null, wenn du einen 1-bit datentyp hast. also hast du's ja doch verstanden.
    🙂

    Also die Definition des Komplements sollte folgendem entsprechen x - ~x = 0, sonst wäre es ja nicht das Komplement, somit wäre bei einem 1-Bit Typ das Komplement gerade der Wert selbst.



  • Äh?? schrieb:

    Also die Definition des Komplements sollte folgendem entsprechen x - ~x = 0, sonst wäre es ja nicht das Komplement, somit wäre bei einem 1-Bit Typ das Komplement gerade der Wert selbst.

    da kann irgendwas nicht stimmen. woher ist diese definition?
    🙂



  • Äh?? schrieb:

    Also die Definition des Komplements sollte folgendem entsprechen x - ~x = 0,

    x**+**~x=0



  • Nur im Einerkomplement.



  • ~ flippt einfach alle bits, was das für auswirkungen auf die zahl hat schreibt der standard AFAIK nicht vor.

    normalerweise wird two's complement verwendet, also -x == ~x + 1 wenn ich mich jetzt nicht irre



  • hustbaer schrieb:

    ~ flippt einfach alle bits, was das für auswirkungen auf die zahl hat schreibt der standard AFAIK nicht vor.

    normalerweise wird two's complement verwendet, also -x == ~x + 1 wenn ich mich jetzt nicht irre

    So siehts aus, dann ist nämlich a - b == a + ~b + 1.


Anmelden zum Antworten