was macht diese zeile genau?
-
return (x & 15) == 0
Kommt des auf des selbe wie modulo 16?
-
-.-
-
Ja, x & 15 ist das gleiche wie x % 16.
@Zeus: ???
-
-.-
-
Danke SG1.
@Zeus: mag sein, dass du etwas anspruchsvolleres erwartet hast, aber es fällt mir manchmal noch schwer, die Bitoperatoren zu verstehen.
-
Nein, die Smily sind da weil ich sowohl Wiedersprechen will als auch eine Erklärung abgeben will, welche Falsch war.
denkst du dieser Code wird an der dritten Stelle mit True ausgegeben?
int i = 6; System.out.println( (i % 5) ) ; System.out.println( (i & 4) ) ; System.out.println( (i % 5) == (i & 4) ) ;
-
@Zeus: Aber es war ja auch nicht ursprünglich gefragt ob i % x <==> i & (x-1) ist. Selbstverständlich funktioniert das nur mit Zweierpotenzen.
MfG SideWinder
-
SideWinder schrieb:
@Zeus: Aber es war ja auch nicht ursprünglich gefragt ob i % x <==> i & (x-1) ist. Selbstverständlich funktioniert das nur mit Zweierpotenzen.
MfG SideWinder
Zweierpotenzen und + als Vorzeichen. Man beachte das +
-
Da alle Zweierpotenzen positiv sind, macht das keinen Unterschied.
-
SG1 schrieb:
Da alle Zweierpotenzen positiv sind, macht das keinen Unterschied.
Warum sollten Zweierpotenzen immer positiv sein? Verwechselst du hier evtl. x^2 mit 2^x ?
-
SG1 schrieb:
Da alle Zweierpotenzen positiv sind, macht das keinen Unterschied.
Mag sein, aber in Java kann jede Ganzzahl ein Vorzeichen besitzen. Daher stimmt deine Aussage schlecht nicht. Sie ist nur eine hinreichende Bedingung.
-
Ja, und? In dem Moment, wo das Vorzeichen negativ ist, ist es schlicht keine Zweierpotenz mehr.
-
Bin mir nicht sicher, aber ich denke, Siassei meint sowas wie
2^(-1) = 1/2
geht nicht.
-
Dasd schrieb:
Bin mir nicht sicher, aber ich denke, Siassei meint sowas wie
2^(-1) = 1/2
geht nicht.
Bruchzahlen werden in einem Integer sowieso nur als 0 oder 1 platz finden...also das kann nicht gemeint gewesen sein. Ich schätze einfach der Poster dachte daran, dass diese Potenzen auch negative Ergebnisse haben können.
MfG SideWinder
-
AppCoder schrieb:
SG1 schrieb:
Da alle Zweierpotenzen positiv sind, macht das keinen Unterschied.
Warum sollten Zweierpotenzen immer positiv sein? Verwechselst du hier evtl. x^2 mit 2^x ?
OT: Möglicherweise bin ich gerade zu kaputt um dich zu verstehen, aber zeig mir bitte eine reale Zahl x, für welche mindestens einer deiner beiden Terme negativ ist?
Siassei schrieb:
SG1 schrieb:
Da alle Zweierpotenzen positiv sind, macht das keinen Unterschied.
Mag sein, aber in Java kann jede Ganzzahl ein Vorzeichen besitzen. Daher stimmt deine Aussage schlecht nicht. Sie ist nur eine hinreichende Bedingung.
Ich habe gedacht, dass Zweierpotenzen beliebige Potenzen zur Basis 2 sind. Und jetzt schaue ich zur Sicherheit nochmals bei WolframAlpha nach. In meinen Augen sieht es so aus, dass 2x für x -> (-∞) zwar gegen 0 strebt, aber negativ sehe ich irgendwie nicht?
-
Dasd schrieb:
Bin mir nicht sicher, aber ich denke, Siassei meint sowas wie
2^(-1) = 1/2
geht nicht.
Ich meine, wir reden aneinander vorbei. Daher ein kleines Beispiel
(x % 16) == (x & 15)
gilt nur, wenn x positiv ist. Der %-Operator nimmt das Vorzeichen mit, der & schneidet es ab. Leider gibt es in Java keinen zusätzl. %-Operator, der nur positive Werte liefert. In manchen Sprachen gibt es einen mod und rem Operator :seufz:
Hier ein kleines Beispiel
scala> -6666661 & 1 res19: Int = 1 scala> -6666661 % 2 res20: Int = -1 scala> -6666661 % 32 res21: Int = -5 scala> -6666661 & 31 res22: Int = 27
-
Ach, auf x bezog sich das. Gut, dann hast Du Recht.