PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum gibt ~0 = -1 und ~5 = -6? Was ist ~?


Gast
2006-11-02, 17:24:00
Hallo,

ich hab in Google nciht wirklich was gefunden aber

Warum gibt ~0 = -1 und ~5 = -6? Was ist ~?

l@mer
2006-11-02, 17:28:34
HÄ? Könntest du dich ein wenig klarer ausdrücken, bitte.

Monger
2006-11-02, 17:32:00
Bitweise Negation. Wobei ich mir jetzt nicht sicher bin, ob dieses Zeichen jenseits von C/C++ noch irgendwo vorkommt... Da die positiven Zahlen bei Null, und die negativen bei -1 anfangen, ist die Negation von 0 eben -1, und von 5 eben -6.

Gast
2006-11-02, 17:32:27
bitweise Negation von Vorzeichen behafteten Integers?

Gnafoo
2006-11-02, 17:38:16
Sieht nach der Negation aus, welche als Zweierkomplement interpretiert wird. Angenommen du hast 5 als 4-Bit Zahl. Dann ist das 0101. Die Negation ist: 1010.

Interpretiert als Zweierkomplement gibt das erste Bit das Vorzeichen (hier Minus) an. Die restlichen Bits geben bei negativen Zahlen an, was zum kleinsten darstellbaren Wert (hier -2^3) addiert werden muss um die Zahl zu erhalten. Also -2^3+2=-8+2=-6.
Das System hat den Vorteil, dass die 0 nicht zwei Werte erhält (1000 und 0000). Denn 1000 ist -2^3+0=-8 und 1111 ist -2^3+7=-1.

Gast
2006-11-02, 23:14:45
Wobei ich mir jetzt nicht sicher bin, ob dieses Zeichen jenseits von C/C++ noch irgendwo vorkommt...

Jep z.B. in Python

Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ~0
-1
>>> ~5
-6
>>>

Xmas
2006-11-03, 00:19:36
Jep z.B. in Python
Ebenso in C#, Java, JavaScript, Perl, Ruby, ...

Gast
2006-11-03, 08:52:25
HÄ? Könntest du dich ein wenig klarer ausdrücken, bitte.

Naja es scheint das es an dir liegt, alle anderen haben es verstanden.



Danke Leute!