по разному считает на разных серверах (возобновление темы)

FedY@

Новичок
по разному считает на разных серверах (возобновление темы)

Читая все ветки и перепробывал все что можно, никак не могу добится успеха. Сразу пишу у меня нету возможности устанавливать дополнительные модули к РНР и т.д. МОДУЛЯ gmp - НЕТ!

вот кусок кода
PHP:
<?
$x = 0x40000000;
print ($x >> 1).'<br>';
print ($x << 1).'<br><br>';
?>
Результат:
1 Сервер:
536870912
-2147483648

2 Сервер
536870912
2147483648

и где делся "-" ? Кто может подсказать как исправить?
 

FedY@

Новичок
PHP:
function ZeroFill($a,$b){
  $z=hexdec(80000000);
if($z&$a){
 $a=($a>>1);
 echo $a."<br />"; 
  $a&=(~$z);
  echo $a."<br />"; 
     $a|=0x40000000;
   echo $a."<br />"; 
     $a=($a>>($b-1));
   echo $a."<br />"; 
}else{
    $a=($a>>$b);
   echo $a."<br />"; 
}
  return $a;
}

ZeroFill(hexdec(80000000), 13);
на разных серверах
1.
-1073741824
1073741824
1073741824
262144

2.
1073741824
1073741824
1073741824
262144

$a&=(~$z); - чем можно заменить?
 
Сверху