Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Электроника - это просто Теоретические и практические вопросы для начинающих электронщиков.

 
Опции темы

Умножение двоичных чисел

Непрочитано 19.12.2011, 19:38  
rocky7
Заблокирован
 
Регистрация: 03.12.2008
Сообщений: 112
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 22 сообщении(ях)
rocky7 на пути к лучшему
По умолчанию Умножение двоичных чисел

Если умножаются два двоичных числа с фиксированной точкой .1111 и .111111 (4 и 6 разрядное) - то сколько разрядов должен иметь регистр результата операции?
Реклама:
rocky7 вне форума  
Сказали "Спасибо" rocky7
warel (28.06.2019)
Непрочитано 19.12.2011, 20:15  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 45
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
russo_turisto на пути к лучшему
По умолчанию Re: Умножение двоичных чисел

4+6=10 разрядный результат операции,

а как проверишь?
russo_turisto вне форума  
Сказали "Спасибо" russo_turisto
warel (28.06.2019)
Непрочитано 19.12.2011, 20:33  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Умножение двоичных чисел

Должен быть 2-байтным, т.к. проще и Гораздо быстрей умножать побайтно

На будущее - Калькулятор Виндовс умеет умножать двоичные и 16-ричные числа
niXto вне форума  
Сказали "Спасибо" niXto
warel (28.06.2019)
Непрочитано 19.12.2011, 20:45  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 45
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
russo_turisto на пути к лучшему
По умолчанию Re: Умножение двоичных чисел

Сообщение от niXto Посмотреть сообщение
Должен быть 2-байтным, т.к. проще и Гораздо быстрей умножать побайтно

На будущее - Калькулятор Виндовс умеет умножать двоичные и 16-ричные числа
С десятичной точкой виндовозный калькулятор умножать не умеет. Это студент, для ответа надо.
russo_turisto вне форума  
Сказали "Спасибо" russo_turisto
warel (28.06.2019)
Непрочитано 19.12.2011, 20:57  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Умножение двоичных чисел

Сообщение от russo_turisto Посмотреть сообщение
4+6=10 разрядный результат операции,
Это результат с плавающей точкой.
А для фиксированной точки разрядность не должна меняться.
В этом примере наверно результат будет 6-ти разрядный.
4-х разрядное число дополняется нулями до 6-ти разрядного.
Результат округляется (скорей всего лишние разряды просто отбрасываются) до 6-ти разрядного.
alvadep вне форума  
Сказали "Спасибо" alvadep
warel (28.06.2019)
Непрочитано 19.12.2011, 21:54  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 45
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
russo_turisto на пути к лучшему
По умолчанию Re: Умножение двоичных чисел

Сообщение от alvadep Посмотреть сообщение
Это результат с плавающей точкой.
А для фиксированной точки разрядность не должна меняться.
В этом примере наверно результат будет 6-ти разрядный.
4-х разрядное число дополняется нулями до 6-ти разрядного.
Результат округляется (скорей всего лишние разряды просто отбрасываются) до 6-ти разрядного.
Проверим

.1111 = 0.5+0.25+0.125+0.0625 = 0.9375 (десятичная система счисления)

.111111 = 0.9375+0.03125+0.015625=0.984375 (десятичная система счисления)

умножаем 0.9375*0.984375=0.9228515625

переводим в двоичную систему

0.9228515625*2=1.845703125 записываем 1
0.845703125 *2=1.69140625 записываем 1
0.69140625*2 = 1.3828125 записываем 1
0.3828125*2 = 0.765625 записываем 0
0.765625 *2 = 1.53125 записываем 1
0.53125*2 = 1.0625 записываем 1
0.0625*2 = 0.125 записываем 0
0.125*2 = 0.25 записываем 0
0.25*2 = 0.5 записываем 0
0.5*2 =1 ну наконец записываем 1 решено

получаем ответ .1110110001 проверте...
я же говорил 10-ти разрядный результат,
не зря при апаратном умножении 8ми битных операндов в 18пиках выделяется 16ти разрядный результат операции,
10 минут потратил на вычисления.
russo_turisto вне форума  
Эти 2 пользователя(ей) сказали Спасибо russo_turisto за это сообщение:
rocky7 (19.12.2011), warel (28.06.2019)
Непрочитано 19.12.2011, 22:16  
rocky7
Заблокирован
 
Регистрация: 03.12.2008
Сообщений: 112
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 22 сообщении(ях)
rocky7 на пути к лучшему
По умолчанию Re: Умножение двоичных чисел

Я тоже в схеме влепил 10-разрядный регистр. Да действительно, 10 разрядов. Спасибо!
rocky7 вне форума  
Сказали "Спасибо" rocky7
warel (28.06.2019)
Непрочитано 19.12.2011, 22:57  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Умножение двоичных чисел

Сообщение от russo_turisto Посмотреть сообщение
С десятичной точкой виндовозный калькулятор умножать не умеет.
Перемножайте без точек. Точку потом передвините. Результат тот же.
Этим и хороша двоичная система.
alvadep вне форума  
Сказали "Спасибо" alvadep
warel (28.06.2019)
Непрочитано 20.12.2011, 01:24  
Alex9797
Почётный гражданин KAZUS.RUN
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,548
Сказал спасибо: 5,035
Сказали Спасибо 10,606 раз(а) в 3,594 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Умножение двоичных чисел

Ну, и я всуну свой пятак в это бурное обсуждение.
Мой вариант будет похож на высказанные, но и будет отличаться.
Дело в том, что еще из школьной программы известно, что разрядность дробной части результата при умножении равна не сумме, а максимальной среди всех сомножителей.
А вот разрядность целой части результата суммируется, чтобы не произошло переполнения.

Таким образом, чтобы дать точный ответ на вопрос, заданный ТС, нужны точные исходные данные, о разрядности целой и дробной части сомножителей.
Alex9797 вне форума  
Сказали "Спасибо" Alex9797
warel (28.06.2019)
Непрочитано 20.12.2011, 09:39  
mtit
Почётный гражданин KAZUS.RUN
 
Аватар для mtit
 
Регистрация: 21.03.2007
Адрес: М.(осква)
Сообщений: 4,398
Сказал спасибо: 2,192
Сказали Спасибо 1,780 раз(а) в 1,012 сообщении(ях)
mtit на пути к лучшему
По умолчанию Re: Умножение двоичных чисел

Сообщение от Alex9797 Посмотреть сообщение
Дело в том, что еще из школьной программы известно, что разрядность дробной части результата при умножении равна не сумме, а максимальной среди всех сомножителей.
Alex9797, ловлю на оговорке. Именно - сумме разрядов.
Причём с двоичной системой интересно. Если в десятичной: 2 в последнем разряде и 5 в последнем разряде - могут дать 10, т.е. последний ноль иногда можно отбросить. (Студенты старой закалки помнят фразу "Считать с тремя значащими разрядами!"). То с двоичной - такое не пройдёт - 1*1 всегда 1.
__________________
+ 7 903 641 87 25// 1. Иногда отвечаю "по памяти" 2. Часто заблуждаюсь >> Критикуйте, не обижусь.
mtit вне форума  
Сказали "Спасибо" mtit
warel (28.06.2019)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение 16x16 c 32-х битным результатом для AVR OneTech Микроконтроллеры, АЦП, память и т.д 12 06.06.2016 00:39
Кодевижен ругается на умножение E_C_C Микроконтроллеры, АЦП, память и т.д 4 12.09.2011 18:35
Преобразование чисел Alien2057 Цифровые сигнальные процессоры 1 25.04.2009 09:44
Умножение многоразрядных чисел на PIC Tujman Микроконтроллеры, АЦП, память и т.д 1 04.02.2007 23:12
Умножение на 4 Leonardo Микроконтроллеры, АЦП, память и т.д 7 06.08.2003 12:46


Часовой пояс GMT +4, время: 15:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.