Autor Zpráva
peta
Profil
Potreboval bych provest jakesi bitove operace se sourobem a ulozit to. Ale nevim, jak pracovat s konkretnimi bity. Ve funkci yyTo jsem myslel, ze mi to zpracuje bit po bitu, jenze vysledkem jsou cisla a ne binarni data. Umel by jste nekdo poradit?
<?php     
function yyTo(&$data1,&$data2,&$bit)
{
$data2 = array();
for ($i=0;$i<strlen($data1);$i++)
    {
    $x = $data1[$i];
    $data2[$i] = "\x0";
    for ($j=7;$j>=0;$j--)
        {
        $bit = $bit ^ ($x>>$j);            //xor
        $data2[$i] = $data2[$i] | ($bit<<$j);    //or
        }
    }
$data2 = implode("",$data2);
}

function xxTo($name1,$name2)
{
$file1 = fopen($name1, "rb");
$file2 = fopen($name2, "wb");
$data2 = '';
$data1 = fread($file1, 8192);
$bit   = ~($data1[0]>>7);
yyTo($data1,$data2,$bit);
//echo $data2;
echo strlen($data2);
fwrite($file2,$data2);
while (!feof($file1))
    {
    $data1 = fread($file1, 8192);
    yyTo($data1,$data2,$bit);
    fwrite($file2,$data2);
    }
fclose($file1);
fclose($file2);
}





xxTo("aaa","bbb");

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: