prevod cisel ze soustav =]

hi lidi, existuje v php nejaka funkce na prevod cisel treba z desitkove do dvojkove, ctyrkove, sesnactkove apod. ?

pripadne nejaky napad jak to vyresit pres php =]


moc diky
php manual -> kapitola mathematical functions, tam to musi najite najit i vy pane redaktore ... receno slovy byvaleho premiera, budiz mu vysocina lehka ;-)
*_*
hehe diik du na manual
Jinak do setnactkove je prevod snadny..
napr: 123 bude: 7B
protoze:
0123456789ABCDEF (a 123 deleno 16 je 7 a zbytek 11) aneb:

. . . . . . . 7. . . B. . . .

do dvojkove je to deleno 2 - kdyz je zbytek 1 tak je jedna kdyz 0 tak 0
delis dokud to jde.

Osmickova... sakra tudle nevim.. vite to nekdo ??
ted me to napadlo :(
Na std. soustavy je nejjednodussi pouzit ty vestaveny funkce PHP ... pokud by byl potreba obecny prevod a nekdo by se stim chtel psat ... tak samozrejme nejlip podle definice :) ...

cislo s ciframa: ... C4 C3 C2 C1 C0 ... o zakladu Z

vstup: $cislo = suma( Cm*Z^n , n=0..(pocet cifer-1) )

vystup: postupne delit $cislo modulo zakladem a zbytek po deleni je vystupni cifra dokud $cislo nebude 0

Pro soustavy vetsi nez 10 ... if ($cifra>9) $cifra = chr(($cifra-10) + acs('A'))

Nic jednodussiho :o))) ... kdyby nekdo uz napsal takovou funkci, necht ji se pastne :) ... taky by se mi hodila :)

Radek
Teda, tak hluboko do matematiky jsem se jaksi jěště nepropracoval...:o).
> Nic jednodussiho :o))) ... kdyby nekdo uz napsal takovou funkci, necht ji se
> pastne :) ... taky by se mi hodila :)

ze by kolektivni slepota ? rikam, ze to je v php vestavene
(cimz nemam nic proti trenovani si algoritmu kdyz to nekdo potrebuje ;-)

base_convert

(PHP 3>= 3.0.6, PHP 4 )
base_convert -- Convert a number between arbitrary bases
Description
string base_convert ( string number, int frombase, int tobase)
> ze by kolektivni slepota ?

Asi jo :) ... ale hledal jsem ji :)))

Radek
Tuhletu pro prevod do HEX jsem delal uz kdysi davno:

$hex = array("0","1","2","3","4","5","6","7","8","9",
"A","B","C","D","E","F");

function DecToHex($cislo)
{
global $hex;
$n = count($hex);
$sx = '';
$sx .= $hex[$cislo/$n];
$sx .= $hex[$cislo-((floor($cislo/$n))*$n)];
return $sx;
}

function HexToDec($cislo)
{
global $hex;
$i = 0;
while ($cislo[0] != $hex[$i]) $i++;
$vc = $i*16;
$i = 0;
while ($cislo[1] != $hex[$i]) $i++;

return $vc+$i;
}


je pomerne jednoducha...
co ale nevim je, jak se do HEX. s. prevadi cislo vetsi nez 255 ?????

doufam ze to nekdo vite
Mno nic, vysvětlí mi někdo základní logiku převádění na hex čísla?
Master wrote:
> co ale nevim je, jak se do HEX. s. prevadi cislo vetsi nez 255 ?????
> doufam ze to nekdo vite

Lukasik wrote:
> Mno nic, vysvětlí mi někdo základní logiku převádění na hex čísla?


nejak tak bych to delal, berte to jako nacrt algoritmu, asi tam budou nejake chyby

$hex = array("0","1","2","3","4","5","6","7","8","9",
"A","B","C","D","E","F");

function DecToHex($cislo)
{
global $hex;
$sx = '';
while ($cislo > 15) {
$sx = $hex[($cislo % 16)].$sx;
$cislo = floor($cislo/16);
}
$sx = $hex[$cislo];
return $sx;
}
Hmm, to bude ono :) dik Miro.
To Lukasik: popisoval jsem to tady nahore.. tak si to precti