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

 
 
> Умножение 32 на code vision, проблема
Botadeus
сообщение May 3 2007, 14:22
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 22-04-07
Пользователь №: 27 233



необходимо осуществить 32 разрядное умножение, переменную создаю типа long, пишу на си что то типа
long temp;
int f[64];
flash int CAS[64][18]; // zabiti vse znacheniya vruchnuu - konstanta
temp = f[v]*CAS[v][t];

вообщем результат этой операции неверный, (распечатываю printf())
если даже что-то с распечаткой, то результат вычисления с огромной ошибкой,
написал тоже на билдере всё нормально считается.
прогу писал для mega 128
смотрел код который генерируется на асемблере, при вызове 3 раза вызов mul, тоесть по идеи всё правильно, только вот результат куда то девается либо вообще не знаю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
WHALE
сообщение May 3 2007, 16:36
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



и компилятор должен был выдать варнинг о потере точности,вообще-то.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Botadeus
сообщение May 3 2007, 20:29
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 22-04-07
Пользователь №: 27 233



варнинг один раз проскачил, о том что возможно переполнение при умножении 16 на 16, но он же не сказал что результат тоже 16 будет. , вообщем считает, но ошибается ( не в этом расчете) а вообще вцелом, может переполнение, хотя я косинусы забил вручную он от -32000 до + 32000
как смотреть переполнение? асемблеровскую вставку? или так можно?
Go to the top of the page
 
+Quote Post



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

 


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


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