Gast
#2330951
Worin liegt bei beiden der unterschied?
1 | |
2 | |
3 | |
4 | |
5 | |
|
Anzeige
|
bitshift-> b = a<<4; ist nicht das selbe wie b = 4<<a;
Gast
#2330951
Worin liegt bei beiden der unterschied?
Morgen, einmal shiftest du den Wert von 'a' um 4 Stellen und das andere mal shiftest du die '4' um 'a' Stellen. 1) Gleichung:
ergibt:
2) Gleichung:
ergibt:
Stephan
Gast
#2330962
Einmal steht da "a<<4", das andere Mal "4<<a". Oh, guck mal, auch bei "pow(2,5)" kommt etwas anderes heraus als bei pow "(5,2)". Und Wahnsinn, auch "5-2" ist etwas anderes als "2-5". Wir sind da einer ganz heißen Sache auf der Spur vielleicht können wir das jetzt am Wochenende ausgiebiger erforschen?
Gast
#2330968
Gast
#2330969
Danke Stephan, das erklärt natürlich auch (1<<X) somit wird die 1 verschoben und zwar um die anzahl die in X angegeben ist. Vielen Dank!
Gast
#2330970
Martin schrieb: > Und Wahnsinn, auch "5-2" ist etwas anderes als "2-5". Du mußt das richtig schreiben: (+5) + (-2) == (-2) + (+5) Nicht Vorzeichen und Rechenoperation mischen. MfG Klaus Michi schrieb: > Danke Stephan, das erklärt natürlich auch > > (1<<X) somit wird die 1 verschoben und zwar um die anzahl die in X > angegeben ist. > Was macht verblüfft: Steht denn davon nichts in deinem C-Buch? Denn für a << b gibt es eine Besonderheit in Bezug auf die Datentypen im Gegensatz zu den meisten anderen Operatoren. Aber auch das sollte in einem vernünftigen C-Buch beschrieben sein.
Gast
#2330972
Klaus schrieb: > Nicht Vorzeichen und Rechenoperation mischen. Ich hatte kein Vorzeichen verwendet. Trinkst du? So früh am Morgen?
Gast
#2330976
Michi schrieb: > Worin liegt bei beiden der unterschied? Der Unterschied liegt im unterschiedlichen Wert der Operanden. Und warum das einen Unterschied macht? Der Shift-Operator nicht kommutativ ist.
Gast
#2330979
Martin schrieb: > Trinkst du? So früh am Morgen? Ja, Kaffee Martin schrieb: > Ich hatte kein Vorzeichen verwendet. Oh, doch. Bei der 5 hast du die Konvention verwendet, daß man am Anfang einer Operation das positive Vorzeichen weglassen kann. Und bei der 2 gilt, daß man beim Aufeinderfolgen von + und - das + weglassen kann. a = 5; b = -2; a + b == b + a; siehe auch Kommutativgesetz. Martin schrieb: > Oh, guck mal, auch bei "pow(2,5)" kommt etwas anderes heraus als bei pow > "(5,2)". Die Potenzierung ist nicht kommutativ. MfG Klaus
Gast
#2330988
Klaus schrieb: >> Ich hatte kein Vorzeichen verwendet. > > Oh, doch. Bei der 5 hast du die Konvention verwendet, daß man am Anfang > einer Operation das positive Vorzeichen weglassen kann. Und bei der 2 > gilt, daß man beim Aufeinderfolgen von + und - das + weglassen kann. Ebenso bei der zweiten Zahl. > a = 5; > b = -2; Nein. +2. (+5) - (+2) Aber netter Taschenspielertrick. >> Oh, guck mal, auch bei "pow(2,5)" kommt etwas anderes heraus als bei pow >> "(5,2)". > > Die Potenzierung ist nicht kommutativ. Eben. Wie die allermeisten Operationen nicht. Und genau das schien der OP nicht zu begreifen.
Gast
#2330998
Martin schrieb: > Aber netter Taschenspielertrick. Mathematisch gibt es eigentlich keine Subtraktion, sondern nur die Addition mit vorzeichenbehafteten Zahlen. Das macht das Leben viel leichter, denn die Addition ist kommutativ, Gleichungen lassen sich leichter umstellen. Martin schrieb: > Und genau das schien der > OP nicht zu begreifen. Ack MfG Klaus Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|