|
|
|
| Здравствуйте!
Мне непонятно почему в результате умножения получается 0.
$k = $NAME{0};
$i=1;
for (; $i<$nLen; $i++)
{
$k = $k ^ $NAME{$i}; // битовое xor
}
#$k=139; <- если раскоментировать, то проблем нет - все правильно делает
$fp = fopen("alf.dat", "rb");
fseek($fp, 512*$k); // <- шибка здесь
$buf = fread($fp, 512); //
|
Как быть? $k=(int)$k; - тоже дает ноль, хотя $k не 0;
Спасибо! | |
|
|
|
|
|
|
|
для: cadko
(02.02.2006 в 09:27)
| |
<?
for (; $i<$nLen; $i++)
{
$k = $k ^ $NAME{$i}; // битовое xor
echo $k; //посмотри какие значения у тебя получаются
}
|
| |
|
|
|
|
|
|
|
для: P@Sol
(02.02.2006 в 10:07)
| | Результат ко мне приходит в виде бинарного файла (так и надо).
Так вот значения $k - однобайтовые, по моим расчетам они верные.
Если смотреть файл в 16-ричном режиме, то эти значения бывают: 0x03, 0x33, 0xb и т.п.
На Си можно умножать 512*0xb - результат будет верным, а на PHP что нельзя?
Как быть? | |
|
|
|
|
|
|
|
для: cadko
(02.02.2006 в 11:33)
| | Можно, почему, у меня строка
Даёт результат 5632, правда если PHP считает переменную строкой при умножении она преобразуется к 0 (PHP в отличие от C++ не является строготипизированным языком). | |
|
|
|