0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
1

64-х битная арифметика

03.05.2011, 01:12. Показов 13854. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто подскажет библиотеки или алгоритмя умножения/деления 64-битных чисел?
Желательно на Си.

А то при работе с 32 битами размер флеша - 2кБ. При применении uint64_t - резко возрастает до 7кБ. А у меня всего 8кБ, а еще надо интерфейс программить.
32 бита не хватает. Уже пробовал туда-сюда сдвигать, типа незначащие цифры убирать, не выходит. Аналогично с ftoot.
Или смириться?

Хочу построить CL-meter, нужно для вычисления малых изменений частоты генератора.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2011, 01:12
Ответы с готовыми решениями:

64-х битная система думает, что она 32-х битная
У меня 64-х битная винда с недавних пор перестала запускать х64 программы

64 битная архитектура
А как сделать, чтобы программа, сделанная в C++, работала с 64 битной архитектурой?

64 битная не стартует
Привет. Ставлю 64 битную семерку с флэшки, форматирую диск все как положено. Система успешно...

8-битная музыка
:help: где можно скачать ваабще а то мои поиски ни к чему не привели :wall:

16
SWK
03.05.2011, 09:53 2
Я несколько лет назад повторил готовую конструкцию на AT89C2051 и LM311. Не знаю, какая там арифметика, но меряет достаточно точно, от долей пикофарады до долей микрофарады, и индуктивности от долей микрогенри. Меня вполне устраивает...

[1.15 Мб]
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
03.05.2011, 10:50 3
Готовые схемы - это хорошо. Да вот с повторением возникают проблемы - нужен программатор то ли для PIC, то ли еще для чего-то, плюс нужно достать точные конденсаторы именно как на схеме, то ли дисплей другой.

Я и так с трудом за 2 месяца прочесывания двух радиорынков отыскал кондеры К71-7В 80-х годов выпуска на 0.01мкФ и 0.026875мкФ 0.5%

Да и в исходниках поковыряться хочется.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
03.05.2011, 12:00 4
это ж какая это должна быть точность... муть какая-то.
0
SWK
03.05.2011, 12:07 5
Цитата Сообщение от kytikot
Готовые схемы - это хорошо. Да вот с повторением возникают проблемы - нужен программатор то ли для PIC, то ли еще для чего-то, плюс нужно достать точные конденсаторы именно как на схеме, то ли дисплей другой.
Ну, программатор для любого контроллера нужен. Для PIC (при налиичии COM порта) - достаточно одного из клонов JDM (Сам давно пользуюсь). Для AT89C2051 - есть простой http://rf.atnn.ru/pic/bi2051.html
Я делал до этого также аналогичный измеритель на PIC, с автокалибровкой через реле. Но там был ЖК индикатор с последовательным интерфейсом, которых у нас не найдешь, а найденный вроде аналог от какого-то китайского телефона упорно не хотел работать с той схемой. Ну а с символьными LCD - проблем обычно нет, хоть и дорогие они у нас (до сих пор от 15 до 30 баксов).
Конденсаторы там обычно на 1000 пф, на первое время достаточно поставить с точностью процентов 5, потом, со временем, подобрать точнее. Дроссель также часто используется достаточно распространенный - 100, 180, 200 мкгн. Тоже можно со временем заменить катушкой с подстроечником, и настроить точнее. При неточно подобранных деталях погрешность растет при измерении больших номиналов (порядка тысяч пик и более), где обычно большой точности не требуется, точность же от единиц пик до сотен получается вполне приемлемая даже при большом отклонении калибровочных. Лучше, чем у китайских мультиметров, однозначно. Те при измерении емкостей менее 1000 пф врут безбожно, а меньше сотни пик - вообще в разы. Мне же надо было мерять от единиц до сотни пик - накопилось много керамических, без маркировки или с цветными точками.

Да и в исходниках поковыряться хочется.
С некоторыми схемами исходники есть. Да и в выложенном мной архиве есть продробное описание методики измерения и рассчетные формулы.
В основном там измерение частоты, а его принципы давно отработаны в десятках конструкций частотомеров. Ну и вычисление результата потом по отклонению измеренной частоты от калибровочной. Там простая математика.
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
03.05.2011, 12:21 6
Насчет точности - давай оценим. Совершенно приблизительно.
Пусть генератор с прецизионным кондером у нас будет, ну скажем с RC-цепочкой 1кОм и 1нФ.
Частота у него будет 1/RC = 1МГц. (формула без поправочных коэффициентов, мы считаем приблизитльно, порядок туда-сюда).
Если добавить измеряемый кондер в 1пФ, то частота будет 1/(R*(C0+C1) = 999001Гц

То есть нужно ловить изменение частоты на 1Гц !!! При эталоне 1МГц. То есть одну миллионную часть.
Если делать измерение не одного периода, а нескольких периодов за эталонную единицу времени - то 32-разрядной точности уже не хватает.
У меня минимум измерений (оценочно, в симуляторе) на 32-разрядах получается порядка 10пФ. И то я еще не пробовал имитировать измерение индуктивности, а там квадратичная зависимость от частоты, а не линейная, там еще раз уможать надо.

Либо нужно как-то еще извратиться и подбирать алгоритм измерения.
0
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
03.05.2011, 12:25 7
Кстати, вопрос немного в сторону - встречал схемы с генератором на компараторе и на триггере Шмитта. Какой из них предпочтительней?
Например, на РадиоКоте парень делает CLR-meter 2313 именно на триггере Шмитта.

P.S. Мне в принципе нужно более индуктивности мерять, чем кондеры. Хочу заняться импульсными блоками питания на TOP-ах.
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
03.05.2011, 12:48 8
А делить и умножать надо на константу? Тогда можно единоразово пересчитать на сдвиги и сложения.
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
03.05.2011, 12:55 9
Ну уж если делать прибор, то вот такой ESR/R/L/C/F meter http://vrtp.ru/index.php?showtopys=16397
Здесь light версия прибора с видео http://vrtp.ru/index.php?showtopys=15087
0
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
03.05.2011, 13:15 10
Этот - на PIC, а их я готовить не умею. И дисплей искать надо.
Я хочу сделать на AtMiko8 и WS1602.
0
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
03.05.2011, 13:21 11
Цитата Сообщение от Stiit.mi
А делить и умножать надо на константу? Тогда можно единоразово пересчитать на сдвиги и сложения.
В том-то и дело - что нет.
Вернее, так. На самом деле на константу, которая является некой функцией от прицизионной емкости. Однако, при калибровке прибора, программно, эта константа может быть перезаписана в ЕЕПРОМ с другим значением...

Вдобавок, я пока представляю, как умножить на константу, разложив ее по степеням двойки - чтобы добиться нужного результата сдвигом и сложением. Но как то же самое сделать с делением? Подскажи?
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
03.05.2011, 13:29 12
Я в процессе очень вялого написания библиотеки до N бит. Беззнаковое деление с остатком уже есть. Но на ассемблере.
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
03.05.2011, 13:48 13
Цитата Сообщение от kytikot
Цитата Сообщение от Stiit.mi
А делить и умножать надо на константу? Тогда можно единоразово пересчитать на сдвиги и сложения.
Вдобавок, я пока представляю, как умножить на константу, разложив ее по степеням двойки - чтобы добиться нужного результата сдвигом и сложением. Но как то же самое сделать с делением? Подскажи?

а точно так же. Вместо того, чтобы поделить на 3, просто умножаешь на 0.333333. Точно так же раскладываешь дробь на степени двойки и делаешь умножение. Где-то видел онлайновый калькулятор наподобие такого:

http://www.piclist.com/techref/piclist/ ... divmul.htm
0
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 405
03.05.2011, 13:59 14
Да, avr-gcc с 64-битными переменными работает очень неэффективно - нативная поддержка для них в нём не реализованна, поэтому он извращается с обобщенными алгоритмами незаточенными под AVR. В IAR-е работа с int64 гораздо лучше реализованна...
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
03.05.2011, 15:20 15
Цитата Сообщение от kytikot
Либо нужно как-то еще извратиться и подбирать алгоритм измерения.
да именно что нужно менять методику.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 222
03.05.2011, 16:42 16
kytikot Можно взять умножение/деление чисел до 80 разрядов здесь
http://rodyokot.ru/forum/viewt... 71#p577771
0
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
03.05.2011, 16:59 17
Цитата Сообщение от okt
kytikot Можно взять умножение/деление чисел до 80 разрядов здесь
http://rodyokot.ru/forum/viewt... 71#p577771
Наверное, так и сделаю. Ибо мой "метр" растет как раз из этой темы.
Либо алгоритм пересмотрю.
0
03.05.2011, 16:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2011, 16:59
Помогаю со студенческими работами здесь

24-х битная математика.
Собственно сабж. В стандартном avr-gcc нет 24-хбитных типов, что вызывает у меня печальку....

битная обработка
Задано 3 однобайтовых чисел. Установить 3 старших и 2 младшие разряды в единицу

32х битная чексумма
есть задание: консольная программа: test -f Test.tst -m checksum печатает 32-хбитную чексумму,...

32-битная ОС против 64-битной
Доброго времени суток всем! Такая вот проблема, у меня на ноуте установлена 32-битная ОС, проц х64,...

Monogame 32-битная винда
Когда я пытаюсь скомпилировать программу выдается ошибка о том что мол онли 64 битные системы. Но...

Бывает ли Миранда 64-битная?
Бывает ли такая сборка миранды,чтобы не отваливалась бы в 64-битной Viste?

64х битная TSS 64
нужна помощь уже замучился. все перепробовал даже мануал на интел начал читать. но увы ума не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru