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"); |
||
Časová prodleva: 11 let
|
0