реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> CodeVision AVR арифметика
Саша_74
сообщение May 23 2011, 08:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 24-04-08
Пользователь №: 37 059



Народ помогите ПЛЗ разрулить такой гемор на CV.!!!!!!\
Надо с начало перемножить два unsigned long int получится unsigned long long int,
а потом это разделить на unsigned long int получится unsigned long int.
Сижу на CV 1.25.9, а он не понимает long long int. [deleted]
Буду счастлив если кто поделится желательно на С библиотечкой, [deleted]
Можно на мыло petrovav74@mail.ru. Заранее при много благодарен.

Сообщение отредактировал IgorKossak - May 23 2011, 09:03
Причина редактирования: Здесь варез не просят!
Go to the top of the page
 
+Quote Post
=GM=
сообщение May 23 2011, 13:22
Сообщение #2


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Интересно, как вы будете вызывать эту подпрограмму, если CV не понимает long long?

Проще сделать так.
int a1,a0,b1,b0
long c1,c0,d
a*b=a1*b1*2^32+(a0*b1+a1*b0)*2^16+a0*b0=c1*2^32+c0
(a* b )/d=c1/d*2^32+c1%d+c0/d


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Саша_74
сообщение May 23 2011, 13:45
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 24-04-08
Пользователь №: 37 059



Процедура принимает и отдает long, а внутр long int*long int=long long int, long long int/long int=long int.
Внутри long int[2] и както обычным столбиком.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 05:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016