Guybrush Threepwood Geschrieben 17. Dezember 2002 Geschrieben 17. Dezember 2002 Hi, kann mir einer von euch mal erklären wie die Leftshift und Rightshift Operatoren genau funktionieren? Mir ist klar das sie die Bits nach links bzw. rechts verschieben, aber so ganz blicke ich da trotzdem nicht durch. Gruß Guybrush
SgtBadAzz Geschrieben 20. Dezember 2002 Geschrieben 20. Dezember 2002 Originally posted by Guybrush Threepwood Hi, kann mir einer von euch mal erklären wie die Leftshift und Rightshift Operatoren genau funktionieren? Mir ist klar das sie die Bits nach links bzw. rechts verschieben, aber so ganz blicke ich da trotzdem nicht durch. Gruß Guybrush Hmmm vielleicht so: 1000 0000 dann eins nach rechts ist 0100 0000 , da die geschoben werden und nicht rotiert (soweit ich noch weiss) fielgt dann das rechte raus. und dann nach links: 0000 0001 -> 0000 0010 Frank
nic_power Geschrieben 21. Dezember 2002 Geschrieben 21. Dezember 2002 Hallo, Aufpassen muss man allerdings, wenn mit vorzeichenbehafteten Werten gearbeitet wird, da hier die Ergebnisse implementierungsabhaengig sein koennen. Nic
Guybrush Threepwood Geschrieben 6. Januar 2003 Autor Geschrieben 6. Januar 2003 Ja, so hatte ich mir das eigentlich auch gedacht, und wenn ich sowas schreibe: int i= 1, t=4; t <<= i; [/PHP] dann ist t danach 8, ist ja auch logisch, das bit wurde um 4 nach links geschoben, aber wenn mehr wie ein Bit gesetzt sind verstehe ich es nicht mehr. Warum kommt hier: [PHP] int i= 3, t=4; t <<= i; als Ergebnis 32 raus? Es müßte doch 48 sein oder nicht? Gruß Guybrush
nic_power Geschrieben 6. Januar 2003 Geschrieben 6. Januar 2003 Originally posted by Guybrush Threepwood Warum kommt hier: int i= 3, t=4; t <<= i; [/PHP] als Ergebnis 32 raus? Es müßte doch 48 sein oder nicht? Gruß Guybrush [/b] Nein, 32 ist schon richtig. Ein Shift nach links um eine Stelle ist im Prinzip (sofern man nicht links "rausshiftet") eine Multiplikation mit 2. In Deinem Beispiel also: 4*(2*2*2). Nic
Klotzkopp Geschrieben 6. Januar 2003 Geschrieben 6. Januar 2003 t <<= i; ist gleichbedeutend mit t = t << i; also t = 4 << 3 48 käme in i heraus, wenn du i <<= t machen würdest.
Guybrush Threepwood Geschrieben 6. Januar 2003 Autor Geschrieben 6. Januar 2003 Oops, ich glaub ich bin noch nicht so ganz wach:( Jetzt hab ichs kapiert, danke. Gruß Guybrush
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden