Zum neuen Informatik-Forum >>
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Schiebeoperationen

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Java/JSP
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Crotaphytus



Anmeldungsdatum: 08.05.2005
Beiträge: 213

BeitragVerfasst am: 20. Jun 2005 16:11    Titel: Schiebeoperationen Antworten mit Zitat

Ich hab da mal ne kleine Frage zu den Schiebeoperationen. Hab soeben festgestellt, wenn ich zum Beispiel ne Zahl mit Datentyp int um 32 oder mehr Bit nach links verschiebe, dann müsst ja rein vom logischen 0 rauskommen. Tuts aber nicht...

Kann es sein, dass der Compiler bei solchen Operationen erst mal Modulo 32 (oder entsprechende Werte bei anderen Datentypen) auf den zweiten Operanten anwendet? (Sprich dass x <<= 33 dann zum Beispiel genauso wie x <<= 1 behandelt werden würde) Hab n bisschen rumprobiert und das würd eigentlich hinhauen...

Stimmt das so oder passiert da noch ganz was anderes? Und wenn das stimmt, dann stellt sich die Frage: Warum macht der das so? Ist das wirklich sinnvoll? Denn so richtig logisch ist das System irgendwie nicht, find ich...

_________________
Genie oder Wahnsinn? Wer kann es wissen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tobias



Anmeldungsdatum: 15.02.2005
Beiträge: 149

BeitragVerfasst am: 20. Jun 2005 21:30    Titel: Antworten mit Zitat

Jawoll. Java implementiert den binären Schiebeoperator modulo 32 (das bedeutet einfach, dass nur die ersten 5 Bits des zweiten Arguments berücksichtigt werden). [Bei 64Bit-Datentypen entsprechend modulo 64].

Ob das sinnvoll ist eine andere Frage. Bestimmt sinnvoller als mehr als 31mal zu schieben. Augenzwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Crotaphytus



Anmeldungsdatum: 08.05.2005
Beiträge: 213

BeitragVerfasst am: 21. Jun 2005 01:27    Titel: Antworten mit Zitat

Na ja, wie mans nimmt... Augenzwinkern Also wenn jemand mehr als 31 Bits weiterschiebt, dann würd ich mal sagen, da stimmt dann was nicht. So n Fehler is wohl schwieriger zu sehen, wenn da irgendwelche Fantasiewerte rauskommen als wenn das einfach mal schön 0 wird und dann gar nix mehr passt.
_________________
Genie oder Wahnsinn? Wer kann es wissen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dachdecker2
Moderator


Anmeldungsdatum: 11.06.2005
Beiträge: 106
Wohnort: Maintal / Hessen

BeitragVerfasst am: 23. Jun 2005 15:09    Titel: Antworten mit Zitat

Wenn man sich vorstellt, dass man viellecht aus Performancegründen die Multiplikation mit 2^n (mit -32<n<32) mit Links-/Rechtsschieben implementiert, und die Funktion mit n=-32 oder aufgerufen wird, ist es vielleicht nicht soo abwegig nullen zu erwarten. Und dann wird man von einem Gemisch aus 0en und 1en überrascht ... Augenzwinkern. Zumindest halte ich das Linksschieben für kritischer, weil dort der Wertab der ersten "runterfallenden" 1 völlig falsch ist. Beim rechtsschieben ist der Fehler maximal 0,5 LSB.
_________________
In a world without walls and fences, who needs windows and gates? [Internet]

Gruß, dachdecker2
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Java/JSP Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen