Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: unsigned 64 bit math in C длв компилятора который держит максимум 32-битные unsigned
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Velund
Может быть кто нибудь может помочь проверенными реализациями четырех основных действий над 64-разрядными unsigned? Компилятор держит 32 бит максимум. Float нет.

Ассемблерных вариантов море валяется - но не под нужные две платформы.
Rst7
Что за платформа и что за компилятор? Может проще заменить? Да и по науке, такие вещи надо на асме делать - в смысле, укладывать рядом с Сишной программой подключаемый модуль на асме, в котором будут выполнены реализации +,-,*,/
Velund
Цитата(Rst7 @ Apr 17 2009, 09:29) *
Что за платформа и что за компилятор? Может проще заменить? Да и по науке, такие вещи надо на асме делать - в смысле, укладывать рядом с Сишной программой подключаемый модуль на асме, в котором будут выполнены реализации +,-,*,/


Одна из двух платформ - Rabbit 2000, компилятор - Dynamic C, используются специфичные библиотеки. Компиляторов в природе всего 2 штуки под него - раббитовский Dynamic C (не ANSI C кстати, скорее C-подобный чем C) и Softools (ANSI C, коммерческий и недешевый, портировать под него весь проект просто нецелесообразно). Ни один из компиляторов не держит типы данных шире 32 бит. Float в той реализации что там есть пользоваться нельзя - уж больно лихо округляют они при вычислениях...

Железо уже давно сделано и работает несколько лет. Так что речь не о новом проекте а о доработке старинного.
Rst7
Понятно. В любом случае рекомендую модуль на асме с экспортом функций add64,sub64,mul64 и div64. Борьба отсутствием работы с флагом переноса в Си приведет к ужасному коду.
Methane
Цитата(Velund @ Apr 17 2009, 07:21) *
Может быть кто нибудь может помочь проверенными реализациями четырех основных действий над 64-разрядными unsigned? Компилятор держит 32 бит максимум. Float нет.

Ассемблерных вариантов море валяется - но не под нужные две платформы.

Гуглили по Extended Precision Integer Math Library?
Velund
Цитата(Methane @ Apr 17 2009, 15:30) *
Гуглили по Extended Precision Integer Math Library?


Теперь да. Подразумевается библиотека с сайта Philip Zimmermann?

Сильно смущает ее монстрообразность и GNU лицензия. Но если ничего больше не придумается, изучу как вариант.

Спасибо за подсказку.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.