Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 типы переменных - uint32   Vyacheslav Ignatyuk   23 Sep 2000 15:32:52 
Архивное /ru.perl/64887347d2f8.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional