PHP префикс шестнадцатеричного значения суммирования с 1?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP префикс шестнадцатеричного значения суммирования с 1?

Сообщение Anonymous »

Я работаю над чем-то, что складывает несколько шестнадцатеричных значений (основание 16).

В обычной программе на C я делаю следующее:

Код: Выделить всё

uint32_t test1 = 0x5BE0CD19;
uint32_t test2 = 0x3587272B;
uint32_t test3 = 0x1F85C98C;
uint32_t test4 = 0x428A2F98;
uint32_t test5 = 0x61626380;
uint32_t test6 = (test1 + test2 + test3 + test4 + test5);

printf( "%08x \n", test6 );
Результат:

Код: Выделить всё

> 54da50e8
Однако в PHP (мой PHP 64-битный), когда я применяю ту же сумму с:

Код: Выделить всё

$test1 = 0x5BE0CD19;
$test2 = 0x3587272B;
$test3 = 0x1F85C98C;
$test4 = 0x428A2F98;
$test5 = 0x61626380;
$test6 = ($test1 + $test2 + $test3 + $test4 + $test5);

echo(sprintf( "%08x \n", $test6 ));
Я получаю:

Код: Выделить всё

> 154da50e8
Что, как ни странно, делает число дополнительным символом с цифрой 1 перед ним.

Есть ли какая-либо причина такого поведения, и если да, то как я могу это предотвратить?


Подробнее здесь: https://stackoverflow.com/questions/525 ... lue-with-1
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»