|
|
|
| Значит вопрос на засыпку число занимает 4 байта. У меня есть файл и туда я собираюсь записывать числа. Мне нужно записать число в виде 4 символов(по 4 байта из файла читать удобнее). Вот как 1.000.000 например превратить в строку из 4 символов? | |
|
|
|
|
|
|
|
для: Красная_шляпа
(23.01.2010 в 22:35)
| | 1.000.000 == 0x00 0F 42 40. Вот алгоритм:
<?
function int2txt(int $n)
{
$n = dechex($n);
while (strlen($n) < 8)
$n .= '0';
return chr(hexdec($n[0].$n[1])).chr(hexdec($n[2].$n[3])).chr(hexdec($n[4].$n[5])).chr(hexdec($n[6].$n[7]));
}
| И обратно:
<?
function txt2int(string $t)
{
while (strlen($n) < 8)
return (int)((string)ord($t[0]).(string)ord($t[1]).(string)ord($t[2]).(string)ord($t[3]))
}
| Должно работать. | |
|
|
|
|
|
|
|
для: ~AquaZ~
(23.01.2010 в 22:45)
| | А number_format не хватит разве? | |
|
|
|
|
|
|
|
для: sim5
(23.01.2010 в 22:52)
| | ОЙ у меня ошибка!!! Вот правильно:
function txt2int(string $t)
{
return (int)((string)ord($t[0]).(string)ord($t[1]).(string)ord($t[2]).(string)ord($t[3]));
}
| А number_format вообще другим занимается. | |
|
|
|
|
|
|
|
для: ~AquaZ~
(23.01.2010 в 22:57)
| | Да?! И чем же оно занимается?
<?
$n = 1000000;
echo number_format($n,0,'','.');
|
PS. Да, признаю, это я "задом наперед" вопрос прочитал видимо. ) | |
|
|
|
|
|
|
|
для: Красная_шляпа
(23.01.2010 в 22:35)
| | Для таких задач используется функция pack:
<?
$ulong4b = pack('L', 1000000);
|
| |
|
|
|
|
|
|
|
для: Саня
(24.01.2010 в 00:07)
| | Спасибо | |
|
|
|