<? $dz = '1476'; $temp = $dz; $i = '10'; do{ $temp = $temp / 2; if ($temp%2) // Z resztą else //Bez reszty $i--; } while($i) ?>
Wynik tego kodu:
Kod
bez resz
0
temp: 738
------------------
z resz
01
temp: 369
------------------
bez resz
010
temp: 184.5
------------------
bez resz
0100
temp: 92.25
------------------
bez resz
01000
temp: 46.125
------------------
z resz
010001
temp: 23.0625
------------------
z resz
0100011
temp: 11.53125
------------------
z resz
01000111
temp: 5.765625
------------------
bez resz
010001110
temp: 2.8828125
------------------
z resz
0100011101
temp: 1.44140625
------------------
0
temp: 738
------------------
z resz
01
temp: 369
------------------
bez resz
010
temp: 184.5
------------------
bez resz
0100
temp: 92.25
------------------
bez resz
01000
temp: 46.125
------------------
z resz
010001
temp: 23.0625
------------------
z resz
0100011
temp: 11.53125
------------------
z resz
01000111
temp: 5.765625
------------------
bez resz
010001110
temp: 2.8828125
------------------
z resz
0100011101
temp: 1.44140625
------------------
Chce zamienic liczbe 10tna na 2jkowa,
dlatego jezeli liczba dzieli sie bez reszty walimy 0
jak z reszta to 1
teraz daje mi z przecinkami, probowalem dac:
<?php $temp = $temp / 2; if ($temp%2) ?>
zeby dzielil liczby calkowite, ale wtedy w 3 kroku o jeden gubi precyzje...
Gdzie mam szukac bledu?
a moze jest prostsza metoda...