# Zahl testen auf gerade/ungerade ????



## HammerHe@rt (28. November 2001)

gibs doch bestimmt ne ultra leichte methode um das in php zu testen oder?????

also ich will ne zahl testen ob sie gerade ist dann soll was passieren.....wenn nicht dann nicht ^^

gibs dafür ne funktion in php ? wenn nein wie fragt man das ab ? is ja dann mathematisches problem..

mfG
Hammerhe@rt


----------



## starter/or_not (28. November 2001)

*so geht es einfach*

also das einfachste was ich kenne ist

$j ist deine zahl
und damit kannst du es checken:

if ($j&1) { echo "mach das"; } else { echo "mach dies"; }


----------



## HammerHe@rt (28. November 2001)

jo und was passiert da nu genau bei

if ($j&1)

????
also was bedeutet  &1   ?????


würde mich mal interessieren ^^

mfG
Hammerhe@rt


----------



## starter/or_not (28. November 2001)

du kannst es auch so machen falls dir das logischer erscheint 

<? 
$x = 11; 
if ($x%2) { 
echo "Zahl $x ist ungrade"; 
} 
else 
{ 
echo "Zahl $x ist ungrade"; 
} 
?>


----------



## DrBloedel (17. April 2006)

Die allereinfachste Methode ist einfach zu überprüfen.

eine Gerade Zahl kann man dzurch 2 dividieren ohne das ein Rest überbleibt.

Also:


```
if ($x % 2 !=0)
{echo "Zahl ist ungerade";}
else
{echo "Zahl ist gerade";}
```
Ende nicht mehr ..


----------



## Marvin Schmidt (17. April 2006)

HammerHe@rt hat gesagt.:
			
		

> jo und was passiert da nu genau bei
> 
> if ($j&1)
> 
> ...



Hi,
& ist ein sogenannter Bit-Operator
.


> $a & $b --- Bits, die in $a und $b gesetzt sind werden gesetzt.


Beispiel:

```
12 & 1:

  1100
& 0001
------
  0000 => gerade

13 & 1:

  1101
& 0001
-----
  0001 => ungerade
```

In der Binärdarstellung ist die letzte Stelle bei ungeraden Zahlen immer 1 und mittels _$var & 1_ wird überprüft, ob die letzte Ziffer eine 1 ist.

Bisher griff ich für sowas auf den Modulo-Operator zurück, da es am nächsten liegt, den Rest bei einer Division durch 2 zu betrachten, aber diese Variante ist ganz interessant.

Gruß
Marvin


----------

