g++ schlecht?

Java/CppProgrammer

Erfahrenes Mitglied
Hallo, ich hab grad bei der erstellung von Programmen ziemlich fiese Fehler mit dem g++ compiler entdeckt. Beispielsweise erkennt er das ^ Zeichen nicht richt an.
Da ergibt 10^2 8(!)

Hab ihr ähnliche Erfahrungen, oder mach ich da was falsch?
Und, gibt es einen anderen Linux compiler auf den ich umsteigen kann?
 
Hi!

Also meines Wissens nach ist der ^-Operator in C/C++ als bitweises XOR (exclusive or) implementiert.

Folgende Wahrheitstabelle:

Code:
 A | B | C
---+---+---
 0 | 0 | 0
 1 | 0 | 1
 1 | 1 | 0
 0 | 1 | 1

In Worten: A^B ist ist genau dann wahr, wenn entweder A oder B wahr sind.

Daraus folgt dann auch:

Code:
(dec) 10 = (bin) 1010
(dec)  2 = (bin) 0010
------------------------------
(dec)  8 = (bin) 1000

Gruß
Johannes

PS: Wenn du eine Potenz errechnen willst benutz pow.
 
Zuletzt bearbeitet:
ich glaube ^ ist als eine logische Operation definiert. Oder als ein Shift bzw. Rotate. Du solltest die pow() Funktion nutzen. Diese wird bei bekannten Operanden zur Compilezeit evaluiert, bei unbekannten Operanden zur Laufzeit.

Aus "Die C++ Programmiersprache" von Bjarne Stroustroup (dem Erfinder von C++):

"Bitweises Exclusiv-Oder Ausdruck ^ Ausdruck"

10 ^ 2 = 1010 ^ 10 = 1000 = 8
 
Zuletzt bearbeitet:
Mist du hast völlig Recht. *Sich selbst hau*.
Dähmlich, dähmlich, dähmlich.
Liegt es nur am Compiler oder wird auch so kein implizites casting vorgenommen wenn ich pow mit 2 Integer Werten aufrufe?
 
Zurück