Erklärung der Bitweisen not-Operator
Warum ist es, dass die bitweisen not-operator (~
in den meisten Sprachen) - konvertiert die folgenden Werte wie folgt:
-2 -> 1
-1 -> 0
0 -> -1
1 -> -2
Sollte nicht -2
konvertieren 2
, 1
konvertieren -1
usw.?
Nachtrag: nützlich zu beachten, dass
bitwise NOT
ist fast immer die Schnellste Methode zum analysieren einer Zeichenfolge in eine Zahl ein: jsperf.com/number-vs-plus-vs-toint-vs-tofloat/20InformationsquelleAutor Maxpm | 2010-11-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen Zweierkomplement für die Darstellung von negativen ganzen zahlen in vielen Sprachen. Wie Sie sehen können, wird-2 vertreten durch
1111110
; wenn Sie invertiert alle bits erhalten Sie0000001
haben, d.h. einen Wert von 1.InformationsquelleAutor Phrogz
Hilft es, wenn man es auch im binary.
Zunächst, wie Sie wissen, negative zahlen sind ausgedrückt als (höchstmögliche Zahl ohne Vorzeichen plus 1 minus Wert). Also -1 in eine 16-bit-Ganzzahl, die die höchste unsigned-Wert von 65535, wäre 65536-1=65535, d.h. 0xffff hex, oder
1111 1111 1111 1111
im binären.Also:
1 Binär =
0000 0000 0000 0001
NICHT auf alle bits führen würde
1111 1111 1111 1110
. Dass in dezimal, ist 65534. Und 65536 minus 65535 1 ist, das ist also -1.InformationsquelleAutor EboMike
Dies ist darauf zurückzuführen, wie negative zahlen dargestellt werden als bits. Für diese am häufigsten Zwei Ergänzt verwendet werden.
-2 zufällig 1111110 in dieser notation, die negierende 1
InformationsquelleAutor BrokenGlass
Dies ist, da die bit-wise operators buchstäblich invertiert jedes bit im Wort.
Es ist NICHT unbedingt eine arithmetische operation, es ist ein Logik-Betrieb.
-2 == %1110, ~-2 == ~%1110 = %0001 == 1
-1 == %1111, ~-1 == ~%1111 = %0000 == 0
und so weiter.
Gehen von -2 bis 2, und 1 zu -1, die Sie verwenden müssen, um die arithmetische negation-operation.
InformationsquelleAutor Peter G. McDonald
InformationsquelleAutor dbasnett
Meisten (alle?) moderne Architekturen verwenden Zweierkomplement zu repräsentieren Ganzzahlen mit Vorzeichen. Das bitweise NICHT ist, so ist die ergänzen die ganze Zahl minus eins.
InformationsquelleAutor user505255
Die zahlen in Computersystemen gespeichert sind, als 2 ergänzen.
Wenn Zahl positiv ist dann 2-Komplement der positiven Zahl ist gleich.Aber für die negative Zahl, ist es anders.
1.-2 -> 1
Hier -2 gespeichert in computer wie 1110(d.h. 2-Komplement von -2).Jetzt ~ 1110 ist 0001.B. 0001 ist die positive Zahl, die gespeichert werden im computer als 0001(ich.e.1)
2.-1 -> 0
Hier -1 gespeichert in computer wie 1111(D. H. 2-Komplement -1).Jetzt ~ 1111 0000.Als 0000 ist die positive Zahl, die gespeichert werden im computer als 0000(ich.e.0)
0 -> -1
Hier 0 werden gespeichert im computer als 0000(d.h. 2-Komplement von 0 ist).Jetzt ~ 0000 1111.Als 1111 ist negative Zahl gespeichert in computer als 0001(z.B.-1)(seit MSB-set für 1111 die Zahl negativ sein wird)
1 -> -2
Hier die 1 wird gespeichert, im computer als 0001(d.h. 2 ergänzen 1).Jetzt ~ 0001 1110.Als 1110 ist negative Zahl gespeichert in computer als 0010(dh-2)(seit MSB ist gesetzt für 1110 die Zahl negativ sein wird)
InformationsquelleAutor Jay Dabhi