Erste Schritte Operatoren zur Manipulation von Bits "~"

dan1996

Aktives Mitglied
Guten Tag, ich habe hier eine Aufgabe doch mich verwirrt das ~ Zeichen, kann mir jemand erklären oder vorrechnen warum z.B. ~3 = -4 ist ?

Aufgabe:
int x = 12
(x - ~3)
 

httpdigest

Top Contributor
~ invertiert alle Bits. Das heißt, aus:
3 = 00000000000000000000000000000011
wird:
-4 = 11111111111111111111111111111100
Weitere negative Zahlen:
-1 = 11111111111111111111111111111111
-2 = 11111111111111111111111111111110
-3 = 11111111111111111111111111111101
Dazu sei noch gesagt, dass vorzeichenbehaftete Ganzzahlen im Zweierkomplement interpretiert werden.
(rot ist das Vorzeichenbit)
 

dan1996

Aktives Mitglied
Danke, kurze frage noch dazu aus 3 wird ja 11 aber wie viele nullen muss man davor schreiben und wie wandelt man die binärzahl (11111111111111111111111111111100)in dezimal um
 

httpdigest

Top Contributor
Wenn du weißt, dass es sich bei der Binärzahl um eine Ganzzahl in Zweierkomplement-Darstellung handelt, schaust du zuerst einmal auf das höchstwertigste Bit (das ganz links). Wenn das 1 ist (ist es in diesem Fall), dann weißt du, dass es sich bei der Zahl schonmal um eine negative Zahl handelt.
Jetzt wandelst du die Binärdarstellung erstmal in ihre positive Darstellung um, indem du alle Bits umdrehst und dann 1 addierst:
Code:
 11111111111111111111111111111100 | ~
 00000000000000000000000000000011 | +1
 00000000000000000000000000000100
Jetzt kannst du, wenn du willst, einfach erstmal alle führenden Nullen entfernen (genauso wie bei einer Dezimalzahl):
Code:
 00000000000000000000000000000100 | entferne führende Nullen
                              100
Jetzt weißt du ja, dass diese Binärdarstellung einer Zahl sich aus 1*2² + 0*2¹ + 0*2⁰ zusammensetzt.
Genauso wie sich z.B. die Dezimalzahl 432 aus 4*10² + 3*10¹ + 2*10⁰ zusammensetzt. Und dann addierst du die Terme einfach und kommst auf -4 (minus 4, weil wir uns ja ganz am Anfang gemerkt hatten, dass es sich ursprünglich um eine negative Zahl handelte, wegen dem Vorzeichenbit = 1).
 

mihe7

Top Contributor
Das ist alles schon in der Antwort von @httpdigest enthalten. Du könntest z. B. die Bits zählen und wirst dann auf 32 kommen, weil in Java int ein 32-Bit-Datentyp ist. Die Umwandlung erfolgt durch Bildung des Zweierkomplements -> Wikipedia.

Nachtrag: hat sich mit Post von @httpdigest überschnitten - damit hast Du auch schon die Erklärung bekommen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Spielereien mit bit wise Operatoren und langen Binärzahlen Java Basics - Anfänger-Themen 3
K Für was braucht man die left und right shift operatoren? Was bringen die, also welchen Zweck haben die? Java Basics - Anfänger-Themen 15
Kleinerals2 NaN Operatoren Java Basics - Anfänger-Themen 3
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
M Operatoren Umwandlung div. Operatoren Java Basics - Anfänger-Themen 7
V Operatoren Was will mir die Tabelle in meinem Lehrbuch sagen? (logische Operatoren) Java Basics - Anfänger-Themen 4
S Bitweise Operatoren" >>>",">>","<<" erklärung Java Basics - Anfänger-Themen 5
G operatoren Java Basics - Anfänger-Themen 3
beatles Operatoren Operatoren - Berechnung Java Basics - Anfänger-Themen 40
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
X Shift-Operatoren Java Basics - Anfänger-Themen 1
P Bitweise Operatoren Java Basics - Anfänger-Themen 2
Phillip Bitweise Operatoren Java Basics - Anfänger-Themen 11
C Operatoren Java Basics - Anfänger-Themen 6
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
M Einfache und Doppelte Operatoren Java Basics - Anfänger-Themen 3
S Operatoren & Terminierung Java Basics - Anfänger-Themen 1
A Bitweise Operatoren Java Basics - Anfänger-Themen 1
O Priorität bei Operatoren Java Basics - Anfänger-Themen 4
N Potenzierung durch einfache Operatoren Java Basics - Anfänger-Themen 13
B Geschwindigkeitsabhängigkeit von Anz. d. Operatoren pro Zeile Java Basics - Anfänger-Themen 12
M hexadezimal in binär mit Hilfe von Shift-Operatoren Java Basics - Anfänger-Themen 6
S Arithmetische Operatoren Java Basics - Anfänger-Themen 7
L Erste Schritte Fragen zu Arrays, Inkrement Operatoren, Dekrement Operatoren ? Java Basics - Anfänger-Themen 9
lulas[]args Fehler - Logische Operatoren Java Basics - Anfänger-Themen 9
H Nur Zahlen, Klammern und Operatoren Java Basics - Anfänger-Themen 3
D Frage zu Bit Operatoren in der Programmierung Java Basics - Anfänger-Themen 9
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
L [Logische Operatoren] referenzierbar? Java Basics - Anfänger-Themen 3
W Was tun die Operatoren ? und : (Bedingungen) Java Basics - Anfänger-Themen 15
W Datentypen Operatoren für eigenen Datentyp nutzen Java Basics - Anfänger-Themen 2
G Logische und Bitweise Operatoren Java Basics - Anfänger-Themen 2
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
E Logische Operatoren && und & Java Basics - Anfänger-Themen 14
? Operatoren && || Java Basics - Anfänger-Themen 10
M Aufgabe Arithmetische Operatoren Java Basics - Anfänger-Themen 12
H While Schleife mit Operatoren Java Basics - Anfänger-Themen 14
T Rechnen mit Operatoren Java Basics - Anfänger-Themen 2
M Arithmetische Operatoren Java Basics - Anfänger-Themen 40
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
M Sind ternäre Operatoren für einen guten Programmierstil wichtig ? Java Basics - Anfänger-Themen 10
E IF Anweisung mit logischen Operatoren Java Basics - Anfänger-Themen 18
JStickman Was bringen Bit-Operatoren? Java Basics - Anfänger-Themen 14
J Matheaufgabe aus String mit mehreren Operatoren Java Basics - Anfänger-Themen 16
D Logische Operatoren Java Basics - Anfänger-Themen 6
D Grundlagen - Operatoren Java Basics - Anfänger-Themen 5
1 Datentypen Rückgabetyp von Java-Operatoren Java Basics - Anfänger-Themen 2
V Bitweise Operatoren in der Grafikprogrammierung Java Basics - Anfänger-Themen 2
SebSnake Operatoren für eigene Datentypen Java Basics - Anfänger-Themen 3
M logische operatoren Java Basics - Anfänger-Themen 2
C Variablen für Operatoren Java Basics - Anfänger-Themen 3
W Rangfolge von Operatoren Java Basics - Anfänger-Themen 16
N zahlen und operatoren gemischt in einem Feld Java Basics - Anfänger-Themen 9
T Logische Operatoren Java Basics - Anfänger-Themen 39
C Dynamische Operatoren! Java Basics - Anfänger-Themen 5
G Shift Operatoren Java Basics - Anfänger-Themen 4
R Bedingte Opeatoren / Verschachtelte Operatoren Java Basics - Anfänger-Themen 4
7 Operatoren in der While Schleife Java Basics - Anfänger-Themen 5
H Postfix Operatoren Java Basics - Anfänger-Themen 2
S Variablen + Operatoren "mixen" Java Basics - Anfänger-Themen 5
F Experimente mit Bit-Operatoren Java Basics - Anfänger-Themen 7
G Nutzen von bitweisen Operatoren Java Basics - Anfänger-Themen 8
J Operatoren in Java Java Basics - Anfänger-Themen 2
S Verwendung bitweiser Operatoren Java Basics - Anfänger-Themen 6
R Binäre logische Operatoren Java Basics - Anfänger-Themen 21
V JSON-Objs aus JSON-Obj filtern und löschen (Manipulation ohne Kenntnis der vollst. Struktur) Java Basics - Anfänger-Themen 12
D HTML Manipulation Navigation Java Basics - Anfänger-Themen 1
T Manipulation der Initialisierungsvariable einer Zählschleife Java Basics - Anfänger-Themen 5
E Input/Output Deserialisierung (Manipulation der Objekte möglich?) Java Basics - Anfänger-Themen 2
W Datei vor Manipulation schützen Java Basics - Anfänger-Themen 5
B String manipulation Java Basics - Anfänger-Themen 4
B Array Manipulation Problem Java Basics - Anfänger-Themen 11
G Map manipulation Java Basics - Anfänger-Themen 6
I Wie viele 1 an Bits hat die Zahl x? Java Basics - Anfänger-Themen 5
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
J Bits zusammen zählen Java Basics - Anfänger-Themen 4
X Datentypen Int oder String in Bits/Bytes umwandeln Java Basics - Anfänger-Themen 10
L Byte[] to String, doch bits sind gespiegelt (MSB/LSB) Java Basics - Anfänger-Themen 3
A Länge einer Hexadezimalzahl in Bits Java Basics - Anfänger-Themen 40
R einzelne Bits prüfen Java Basics - Anfänger-Themen 12
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
B Wieviele bits belegen die Datentypen? Java Basics - Anfänger-Themen 2
P Bits bei BigInteger abprüfen Java Basics - Anfänger-Themen 2
I Bits lesen und schreiben Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben