![]() |
Prüfen ob Zahl ungerade Hi, ich habe neulich eine mir völlig neue Variante gefunden, ob eine Zahl ungerade ist (also nicht über n%2==1 oder so). So: if ( (n & 1) == 1 ) // n ungerade?, dann weiter mit if-Bed. Kann mir einer vielleicht erklären, wie das geht?? Es ist doch: (n UND 1) == 1, aber was ist wenn n=3 oder so, dann steht da: (3 UND 1)==1, aber das ist doch falsch. Sorry, wenn das für euch offensichtlich ist, aber ich glaube ich habe gerade einen Blackout. Fakt ist, der Ausdruck ist richtig. Gruß |
AW: Prüfen ob Zahl ungerade wenn ich das richtig verstanden hab, ist das einzelne & ein bitweiser vorgang, der dir true zurückliefert, wenn die letzte stelle 1 ist und 0 wenn die letzte stelle 0 ist also z.b. (1) 1 -> true (2) 10 -> false (3) 11 -> true (4) 100-> false (5) 101 -> true edit: ggf. weiterführende links: [url]http://manuals.phpforum.de/php/language.operators.bitwise.php[/url] [url]http://www.addison-wesley.de/service/Krueger/kap05005.htm[/url] oder recht generisch: [url="http://www.google.com/search?num=100&hl=de&client=opera&rls=de&q=bitweise+operatoren&btnG=Suche&lr="]bitweise operatoren - Google-Suche[/url] :mrgreen: |
AW: Prüfen ob Zahl ungerade danke tele, an die bitweise darstellung (also dualcode) habe ich gar nicht gedacht, aber jetzt ist alles klar, da hätte ich auch selber drauf kommen können :mrgreen: wie gesagt danke noch mal für die schnelle antwort |
AW: Prüfen ob Zahl ungerade Wobei man da ganz schön aufpassen sollte! Bei Integer und Long funktioniert das, bei float und double aber nicht. |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr. |
Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.