Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Erste SchritteOperatoren zur Manipulation von Bits "~"
~ 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)
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
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:
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).
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.