Wieso kommt bei Java das falsche raus?
System.out.println((2^3 + 2) / 2)
=3 statt 5.
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Java, Programmieren & Softwareentwicklung
^ ist in Java nicht das, was du in dem Fall hier jetzt erwartest - es ist nicht das Zeichen, um den Exponenten von der Basis zu trennen, sondern ein bitweises XOR.
^ hat eine niedrigere Priorität als +, weshalb deine Formel als ((2^(3 + 2)) / 2) interpretiert wird.
Betrachten wir zuerst die XOR-Operation: 2 ^ 5 entspricht binär 0010 ^ 0101, womit als Ergebnis dieser Operation 0111 (= 7) rauskommt. 7 / 2 entspricht 3, da Integer-Division.
Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)
xxxcyberxxx
bestätigt
Von
Experte
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Java, Programmieren & Softwareentwicklung
Weil ^ nicht hoch bedeutet.
^ ist ein Bitwise XOR, siehe https://stackoverflow.com/questions/10217390/what-does-caret-mean-in-java
Du brauchst Math.pow(2, 3)
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf