|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vyacheslav Ignatyuk 2:5020/400 23 Sep 2000 15:32:52 To : All Subject : типы переменных - uint32 --------------------------------------------------------------------------------
Проблема простая - нужно оперировать в программе 32-битными беззнаковыми
целыми. Обязательно!!!
Perl по умолчанию использует арифметику с плавающей точкой. Прагма integer -
было бы неплохо,
но в это случае все целые - знаковые.
Я конечно выкручиваюсь в виде:
use integer;
ВЫЧИСЛЯЮ ХЕШ ФУHКЦИЮ...... (используется с возможным переполнением 32
битного целого)
no integer;
$hesh = unpack("L", pack('l', $hash));
Все это не есть хорошо. Это спасает в битовых операциях.
Hо кроме этого используются и обычные арифметические операции для чисел от 0
до uint32 max,
где уже переполнение контролировать надо.
Кто что может предложить не сильно геморойное и чтобы проблемм с
производительностью особых не было.
И что бы не XS ;-))
Играться с pack, unpack, vec не хочется (хотя с vec'ом можно задать
разтядность явно).
Vyacheslav Ignatyuk (ivrom@ant.ru)
--
Отправлено через сервер Talk.Ru - http://www.talk.ru
--- ifmail v.2.15dev5
* Origin: Talk.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/64887347d2f8.html, оценка из 5, голосов 10
|