Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
подскажите алгоритм быстрого умножения 32-х битного числа на 1000.
Отправлено
alexdos
(178.94.54.41)
04 апреля 2011, г. 15:37
Или как делать математические операции с 64-х битными целыми числами если компилятор только имеет максимум 32-х битные целые.
Составить ответ
|
Вернуться на конференцию
Ответы
компилятор знает. осталось узнать систему команд конечного cpu :))
-
ы
(403 байт, 04.04.2011, 16:17:17
213.108.4.27
)
Если нет умножителя, то x*1000 = x*1024 - x*16 - x*8.
-
Каа
(
пустое
, 04.04.2011, 15:51:43
46.52.128.238
)
((x*256/4 - x)*2 - x)*8
-
argus98
(
пустое
, 04.04.2011, 16:18:3
81.22.205.230
)
256/4 = 64. Итого: 8*(2*(64x-x) -x)
-
Тумблер
(
пустое
, 04.04.2011, 17:32:13
194.190.65.78
)
или y = ((((x<<6) -x)<<1) -x)<<3;
-
Тумблер
(
пустое
, 04.04.2011, 21:09:3
194.190.65.78
)
Это зависит от проца. Одно дело мега с 8 бит аппаратным умножителем, другое дело арм с 32. И третье, если умножителя нет вообще.
-
Каа
(
пустое
, 04.04.2011, 15:49:3
46.52.128.238
)
разбиваешь на две 16-битные половинки, умножаешь на 1000 каждую отдельно, потом сдвигаешь и складываешь
-
Токовый клещ
(
пустое
, 04.04.2011, 15:45:49
95.25.46.129
)
Кампилятор С18, процессор PIC18F46j50, число при умножении розрядность в 32 бита превысит всегда.
-
alexdos
(
пустое
, 04.04.2011, 16:21:34
178.94.54.41
)
поэтому и нужно умножать 16-битные части, которые при умножении на 1000 не вылезут за пределы 32 бит
-
Токовый клещ
(
пустое
, 04.04.2011, 16:38:52
95.25.46.129
)
Да, способ с умножением двух частей , а потом сложением с сдвигом двух результатов, пожалуй самый простой способ приналичии 32-х розрядных.
-
alexdos
(
пустое
, 04.04.2011, 17:11:22
178.94.204.150
)
Слово "сдвиг" здесь как-то ни к селу ни к городу.
-
Крок
(
пустое
, 04.04.2011, 22:33:22
188.123.248.236
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 34:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru