2654435737 >> 5

nerezus

Вселенский отказник
2654435737 >> 5

Как интерпретировать 2654435737 как беззнаковое?
 

nerezus

Вселенский отказник
Я посмотрел gmp и bc - нету там _shr и _shl функций =\
Странно как-то.
 

dimagolov

Новичок
дели с отбрасыванием остатка на 2^sh, т.е. на 32 для >> 5

-~{}~ 29.09.09 17:31:

Странно как-то.
чего тут странного? это битовая операция используемая для быстрого умножения/деления на степени 2-ки, это единственное применение сдвига в математике, а либы именно под десятичную систему заточены и вычисления в ней.
 

Жигaн

Новичок
зачем? биты слева мешают? сбрось их!

PHP:
define('MASK', ~(1 << (PHP_INT_SIZE * 8 - 1)) >> (5 - 1));

printf('%x, %x', ((2654435737 >> 5) & MASK), (2654435737 >> 5));
 

nerezus

Вселенский отказник
Понял, что в таких случаях гораздо предпочтительнее юзать экстеншены )
 
Сверху