2654435737 >> 5 Как интерпретировать 2654435737 как беззнаковое?
nerezus Вселенский отказник 29 Сен 2009 #1 2654435737 >> 5 Как интерпретировать 2654435737 как беззнаковое?
dimagolov Новичок 29 Сен 2009 #2 никак PHP does not support unsigned integers. Нажмите для раскрытия...
nerezus Вселенский отказник 29 Сен 2009 #3 Я посмотрел gmp и bc - нету там _shr и _shl функций =\ Странно как-то.
dimagolov Новичок 30 Сен 2009 #4 дели с отбрасыванием остатка на 2^sh, т.е. на 32 для >> 5 -~{}~ 29.09.09 17:31: Странно как-то. Нажмите для раскрытия... чего тут странного? это битовая операция используемая для быстрого умножения/деления на степени 2-ки, это единственное применение сдвига в математике, а либы именно под десятичную систему заточены и вычисления в ней.
дели с отбрасыванием остатка на 2^sh, т.е. на 32 для >> 5 -~{}~ 29.09.09 17:31: Странно как-то. Нажмите для раскрытия... чего тут странного? это битовая операция используемая для быстрого умножения/деления на степени 2-ки, это единственное применение сдвига в математике, а либы именно под десятичную систему заточены и вычисления в ней.
Жигaн Новичок 1 Окт 2009 #5 зачем? биты слева мешают? сбрось их! PHP: define('MASK', ~(1 << (PHP_INT_SIZE * 8 - 1)) >> (5 - 1)); printf('%x, %x', ((2654435737 >> 5) & MASK), (2654435737 >> 5));
зачем? биты слева мешают? сбрось их! PHP: define('MASK', ~(1 << (PHP_INT_SIZE * 8 - 1)) >> (5 - 1)); printf('%x, %x', ((2654435737 >> 5) & MASK), (2654435737 >> 5));
nerezus Вселенский отказник 2 Окт 2009 #6 Понял, что в таких случаях гораздо предпочтительнее юзать экстеншены )