Вопрос Как в PHP указать тип переменной unsigned int?

Регистрация
11 Сен 2013
Сообщения
69
Репутация
0
Спасибо
0
Монет
0
Проблема в том что на С++ и PHP два одинаковых кода возвращают разный результат.
//// С++
unsigned int A = 0xb7ec3d57;
unsigned int B = 0xb0000000;

A = A ^ (B >> 10);
A = A & ~B;

На выходе получаем A = 0x07ec3de7 (Как и должно быть)

////// PHP
$A = 0xb7ec3d57;
$B = 0xb0000000;

$A =$A ^ $B >> 10);
$A =$A & ~$B;

На выходе получаем A = 0x4813c2e7 (Как не должно быть)
Проблема в первом (знаковом бите) 32х битного числа 0xb7ec3d57 если указать меньшее число (так чтобы первый бит был 0) то результат будет одинаковый.
Есть ли решение этой проблемы на PHP?
 
Попробуй отрицательные числа обрабатывать отдельно, убирая первый бит, потом сдвигая и возвращая бит в нужную ячейку.
 
Назад
Сверху