Diskussion:Bitweiser Operator
Quellenangaben
Bearbeiten
Überarbeiten
BearbeitenIch habe grad die Redundanz beim bitweisen Verschieben (wenn auch dilitantisch) aufgelöst. Der wenige Inhalt wurde übernommen.
Das anfängliche Beispiele müsste eingearbeitet werden. Davon abgesehn, gibt der Abschnitt keinen guten Überblick und keine Anschauung
Dieses Verfahren ermöglicht somit den Zugriff auf einzelne Bits einer Null-Eins-Abfolge und stellt eine Alternative zur Multiplikation bzw. Division dar.
Wie macht es das genau? Außerdem sind die andern 4 "Arten" der Verschiebung viel zu umstöndlich erklärt, also ich als Mittel-Laie verstehe sie einfach nicht. Wenn es möglich ist, dann bitte mit ein paar "Rechen-Beispielen" kommentieren. Würde den Abschnitt echt perfektionieren. Danke und Grüße --WissensDürster 19:16, 24. Mai 2009 (CEST)
- PS: die Bedeutung der assoziativen Verweise (Boolesche Algebra, Boolescher Operator, Logikgatter, Logischer Operator) wird auch nicht gleich klar. Eigentlich braucht jeder Abschnitt noch ein paar oma-taugliche Einleitung und Erklärungen. Der Artikel ist gut, wenn er die Verweise nicht braucht, weil alle Informationen aus dem Fließtext zu entnehmen sind. --WissensDürster 19:18, 24. Mai 2009 (CEST)
- PPS: Man sollte in dem Abschnitt vllt. als Einleitung die Verschiebung als solches erklären - und zwar am Beispiel des uns vertrauten dekadischen Systems. Könnte so aussehn:
000....00009 "Shifte" nach Links um 1 000....00090
Quelle - Wir wollen ja nichts kopieren, also sollte man sich ein ähnliches Beispiel ausdenken. --WissensDürster 15:56, 14. Jun. 2009 (CEST)
Ich finde es nicht so günstig, dass die Shift-Operatoren als "eigentlich NICHT bitweise" bezeichnet werden, weil sie nur auf einem Datum arbeitn. Das Bitweise NOT ist ebenfalls unär. Mit dieser Begrüundung wäre es auch kein "bitweise" Operator in dem Sinne. Mein Vorschlag: Weglassen von dieser Behauptung. Shift arbeitet so bitweise, dass es kaum mehr "bitweiser" geht. Ich schiebe ja x um n Bits nach re/li. Aber nur meine Meinung.--[M.A.N.] 11:33, 28. Nov. 2011 (CEST) (ohne Benutzername signierter Beitrag von 92.231.166.185 (Diskussion) )
Bitoperationen in C/C++
BearbeitenLeider ist der Abschnitt im Moment falsch. Bitoperationen sind in C und C++ nur dann so "klar", wenn beide beteiligten Datentypen unsigned
sind und der Wert des rechten Operanden kleiner ist als die Wortbreite des linken Operanden. (Klingt kompliziert, ist aber so) Für signed
Datentypen ist es noch komplizierter. Somit tut folgender Code nicht unbedingt das, was man vielleicht erwarten mag:
uint32_t u = 99u << 66;
int i = 1 << 33;
int j = 23 << -3;
int k = -42 >> 3;
uint32_t v = 1 << 31;
Vorschlag für einen Weblink
BearbeitenDa Links immer Anlass zu Diskussionen sind stelle ich direkt hier rein. Sollte er noch Zustimmung finden kann ihn jemand einfügen.
Bitweiser Operator in verschiedenen Sprachen auf rosettacode.org
91.9.251.198 09:39, 22. Mai 2010 (CEST)
- Dagegen. Zum einen halte ich den Mehrwert für zu gering, andererseits sind die Codebeispiele stellenweise fehlerhaft. "vom Feinsten" ist das jedenfalls so nicht, leider. --RokerHRO 12:26, 22. Mai 2010 (CEST)
- Welche von den 50 dort gezeigten Codebeispiele sind denn fehlerhaft? Ich kann von mir nicht behaupten das ich von all denn Sprachen den passenden Interpreter/Compiler habe um das zu testen. -- 91.9.182.76 14:53, 23. Mai 2010 (CEST)
- Z.B. der Kommentar beim Rechts-Shift in C. Was "on most platforms" passiert, ist irrelevant, laut Sprachnorm ist es schlicht undefiniert, wenn man negative Zahlen shiftet, selbst wenn auf vielen Plattformen da irgendwas Plausibles passieren mag. Ebenso ist das Verhalten des Programms völlig undefiniert, wenn der rechte Operand beim Shift negativ oder größer als die Wortbreite ist. --RokerHRO 23:44, 23. Mai 2010 (CEST)
Zyklische Verschiebung mit Übertragsbit
BearbeitenDer Satz: "Enthält das Übertragsbit beispielsweise eine 0, dann entspricht die Verschiebung nach rechts einer arithmetischen Verschiebung nach rechts" scheint fehlerhaft oder verwirrend, denn bei der arithmetischen Verschiebung nach rechts wird "das ursprünglich höchstwertige Bit (MSB) am linken Ende eingefügt" wie weiter oben im Abschnitt "Arithmetische Verschiebung" beschrieben und dieses MSB ist nicht zwingend eine 0. --79.214.116.64 19:52, 8. Nov. 2012 (CET)