Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Схемотехника] Операции с двоичными числами 
:(
    Опции темы
Loncaster
Дата 6.2.2007, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 8.8.2006

Репутация: нет
Всего: нет



Вообщем проболел почти все начало схемотехники...а точнее тему где обсуждалось деление/умножение чисел с плавающей точкой и с фиксированной. Так вот прошу помочь мне решить данную лабу, конечно подозреваю что именно решать врятли кто-то захочет, но тогда хотя бы раскажите алгоритмы этих умножений/делений))

Вообщем
Число А = ((17+25)/64)десят. = 0,10101 двоичная , Порядок = 6
Число Б = ((60-17)/64)десят. = 0,101011 двоичная, Порядок = 1

Задание 1
Заданные десятичные числа перевести в двоичную систему(это я уже сделал) и совершить умножение числе с фиксированной точкой. Результаты проверить письменно.
Задание 2
Совершить деление вышезаданных чисел с фиксированной точкой. Проверить результаты письменно.
Задание 3
Навести пример действий с порядками и посчитать результаты операций умножения и деления с указанными порядками.

Вообщем буду благодарен за любую помощь =)



--------------------
Ще не вмерла Україна...
PM MAIL   Вверх
Faiton
Дата 6.2.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.10.2006

Репутация: нет
Всего: нет



юзай асм....там всё легко и просто smile
PM MAIL   Вверх
Loncaster
Дата 7.2.2007, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 8.8.2006

Репутация: нет
Всего: нет



Да Мне это на бумаге решить нужно, а не напрограммировать =))
--------------------
Ще не вмерла Україна...
PM MAIL   Вверх
Ripper
Дата 10.2.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 6
Всего: 23



Так. Смотрим 1 задание) Как я понял у тебя есть два числа
A=0,10101
B=0,101011
Чтобы их перемножить (умножение с фиксированной запятой(или точкой), где все числа меньше 1) нужно выполнить следующие действия
1)Представить числа в прямых кодах:
[X]пк = 0.10101
[Y]пк = 0.101011
(до точки - знак, 0 - плюс, 1 - минус. в данном случае все положительно)
2)Перемножить собственно. Есть 2 способа. С младших и старших разрядов. С младших по мне так легче но я забыл формулу. А со старших - понятнее. Выводить откуда это не хочу (если надо скажи), а вот в чем заключается метод. Сначала нумеруешь цифорки числа Y начиная с цифровой части (т.е. та что после точки). Хотя и не обязательно просто по разному это дело рисуют кто через таблицу кто через ф-лу. Кароче. Рисуешь табличку из 3х столбцов. В первом столбце каждая строка - цифра числа Y начиная слева. Второй столбец каждая строка - сдвинутое число икс на один 0. А третий столбец, в нем строки - результат умножения первого столбца на второй. Кароче чтобы было понятнее вот:

__________________________________
1 (y1)|0.010101 (x * 2^-1)|0.010101 
0 (y2)|0.0010101 (x*2^-2)|0
1 (y3)|0.00010101             |0.00010101
0 (y4)|0.000010101           |0
1 (y5)|0.0000010101         |0.00000101
1 (y6)|0.00000010101       |0.00000010101

Результатом умножения будет субба всех элементов третьего столбца.
У меня получилось 0.01110000111
Теперь проверяем на калькуляторе, но он у меня не считает числа меньше 0 т.е. дробные. Так что я целыми посчитаю
A = 10101 =  21
B = 101011 = 43
21*43=903
903 -> 1110000111
Т.е. ответ сходится (там нолик лишний не играет роли)

Я надеюсь я верно все посчитал и объяснил т.к. я сам плавал в этой теме да и щас не лучше

Делить не умею. Разве что могу посоветовать www.intuit.ru и там гдееее то должны быть лекции по Организации ЭВМ И арифметическим основам

Добавлено @ 14:35 
Умножение с порядками. Значит, что там... хм
Число с плавающей запятой представляется в виде
X = порядок * мантисса
Напримере десятичной:
21*10^2 (или 210) нужно умножить на 32 *10^3 (или 3200)
Что происходит: 21*10^2*32*10^3 = 21*32*10^5
Т.е. порядки складываются, а мантиссы перемножаются
Ты перемножаешь мантиссы как я написал выше (либо способом с младших разрядов - роли не играет)
А потом складываешь порядки и сичло записывается в виде, например
X = 0,1010  0,1011101 
т.е. порядок и мантисса отдельно. 
Вроде так
Ну при делении порядки вычитаются и мантиссы делятся. Так же могут быть исключительные ситуации с машинной бесконечностью и нулем, о которых я не знаю. Сложение и вычитание чисел с плавающей запятой чуть по сложнее, там нужно приводить к одному порядку


--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.