|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 09 Oct 2002 16:12:43 To : Eugene Grosbein Subject : Re: int64 --------------------------------------------------------------------------------
Eugene Grosbein wrote:
> Привет!
>
> Обрабатываю перлом (5.005_03) счетчики, каждый из них беззнаковый, 32 бита.
> Hадо их суммировать и результат сохранять. Соответственно результат
> должен быть 64 бита. В каком разделе perldoc про разрядность есть?
> Hе будет он молча заворачивать по модулю 2^32?
Зависит от OS, компилятора и опций сборки perl. Спроси у интерпретатора:
$ perl -V:intsize -V:longsize -V:longlongsize -V:ivtype
intsize='4';
longsize='4';
longlongsize='8';
ivtype='long';
в данном примере perl собран с поддержкой IV типа long
который на данной платформе 4-байтовый (32 бита). Hо
можно было собрать и с 64-битным longlong, хотя это
привело бы к потере скорости (longlong - расширение GCC
для целых превышающих native разрядность системы).
По поводу "заворачивания" - perldoc perlnumber:
All the operators which need an argument in the integer format treat
the argument as in modular arithmetic, e.g., "mod 2**32" on a 32-bit
architecture. "sprintf "%u", -1" therefore provides the same result as
"sprintf "%u", ~0".
Андрей
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/657717de4799.html, оценка из 5, голосов 10
|