PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bitweise Inversion ~


unwissender_Gast
2006-04-09, 22:57:06
Bei der bitweisen Inversion werden bekanntlich alle 0er zu 1er und alle 1er zu 0er.

Nun steht in dem Handout der Uni :

~10 = ~1010(bin) = 0101(bin) = 5

Lass ich nun aber mit meinem Compiler ~10 berechnen, kommt als Ergebnis
-11.

Wie kommt das zustande ?

Die einzigste für mich logische Erklärung wäre das bei 10 nicht 1010 sondern
01010 umgewandelt wird, das ergäbe dann aber 10101 .
10101 wiederum ist in dezimaler SChreibweise -11 , da nach der 1 alle 0er zu 1er werden und umgekehrt, ausserdem am Schluss noch 1(bin) hinzugefügt wird. (falls es etwas zur Sache tut, die Programmiersprache ist Java)

Stimmt meine Theorie ?

Trap
2006-04-09, 23:01:37
In Java sind alle Zahlen vorzeichenbehaftet (in 2er-Komplementdarstellung), also werden alle Zahlen mit gesetztem höchsten bit als negativ betrachtet.

Wenn man einfach nur 10 in ein Javaprogramm hinschreiben bekommt man eine 32-bit Zahl mit dem Wert 10, also
00000000000000000000000000001010

Gast
2006-04-09, 23:07:18
Aber von
00000000000000000000000000001010

wäre die bitweise Inversion ja

11111111111111111111111111110101 ?

aber in Java (oder allgemein) werden Zahlen in negative umgewandelt indem nach der 1 auch wieder die bitweise Inversion stadtfindet und dann 1 (bin) addiert wird.
Das wäre dann :
1(Vorzeichen, wird ignoriert)000000000000000000000001010(bin) + 1(bin) =
10000000000000000000000001011 = - 1011 = - 11.

Müsste also stimmen. Folglich ist in dem von der Uni schon wieder ein Fehler....

Trap
2006-04-09, 23:14:38
Nö, kein Fehler, andere Annahmen. Das Ergebnis ist richtig wenn man mit genau 4 Bit rechnet.

Um das in Java rauszubekommen musst du schreiben (~10)&0xf

Gast
2006-04-09, 23:20:12
k, hab's verstanden , thx.

Vlt. kein Fehler aber wenns deutlicher geschrieben wär hätt ich's gleich verstanden D

Coda
2006-04-09, 23:41:37
Seit wann sind Uni-Handouts denn deutlich und absolut unmissverständlich? ;)

Expandable
2006-04-10, 00:09:09
Seit wann sind Uni-Handouts denn deutlich und absolut unmissverständlich? ;)
... und vor allem immer richtig? ;o)

Coda
2006-04-10, 00:19:41
Das ist ja noch nicht mal bei Prüfungen der Fall *hust*

ScottManDeath
2006-04-10, 05:02:26
Wer liest Uni Handouts? :| Und lernt was davon?