2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Сумма двух отрицательных чисел плавающей точкой двоичный код
Сообщение26.10.2009, 22:22 
Помогите пожалуйста с переводом намучался думал думал не сходится - да и в книжке написано мудрено и длинно а в конце маленький пример сжатый. А препод тоже быстро обяснил говорит конспект перечитайте, а его ни у кого нет. Мы заочники. Непонятно.
Хвост наносу диплом надо сдавать.
Парень, который сделал но его давно отчислили я просто его нашел прислал, но у него в том что он прислал - второе задание в дополнительный код не переведено, а почему-то только в инверсном.
Задание
8.Выполнить операции так, как это происходит в машинах с плавающей точкой
А1/32 – А2/128 в обратном коде
-А3/256 – А4/512 в дополнительном коде.

Вот как я пробовал.

Код:
Второе задание ( - А3/256 – А4/512   в дополнительном коде):
В десятичном:           -223/256_____________ -3213/512
В двоичном:           -0,1101111_____________ -110,010001101
Нормализация:      -0,00011011111 +3______ -0,110010001101 +3
В прямом коде:   [1]0,00011011111 +3____ [1]0,110010001101 +3
В дополнительном:[1]1,11100100001 +3____ [1]1,001101110011 +3

Сложение:
[1]1,111001000010  +3
+
[1]1,001101110011  +3
=
[1]1,000110110101  +3

есть перенос 1 (тут я вспомнил препод сказал. что "1" добавляется в конец мантиссы) выходит
[1]1,000110110101  +3  = [1]1000,1101101011 <ВОТ ОНО ДОБАВИЛОСЬ

Итак проверим:
-223/256 - 3213/512 = (-446-3212)/512=-3659/512=[b]-111,001001011[/b]

[1]1000,1101101011 (инверсный) => -111,0010010100

Не совпадает - совпадает все кроме последних цифр - который день бьюсь

 
 
 
 Re: Сумма двух отрицательных чисел плавающей точкой двоичный код
Сообщение27.10.2009, 03:43 
Честно говоря, не очень понятно, что за "ОНО" у Вас добавилось.
В результате сложения A3 и A4 в дополнительном коде у Вас получилась сумма
Код:
[1]1,0001.1011.0101 (3)
эту сумму надо сначала преобразовать в прямой код и только после этого нормализовать (иначе, та единичка, которую надо вычесть для получения инвесного кода из дополнительного, окажется совсем не на месте):
Код:
в доп. коде           : [1]1,0001.1011.0101 (3)
в инверсном коде      : [1]1,0001.1011.0100 (3)
в прямом коде         :   -0,1110.0100.1011 (3)
в нормализованном виде: -111,0010.0101.1000 (0)
получаем ровно то, что у Вас в "Итак проверим:"
Код:
Итак проверим:
-223/256 - 3213/512 = (-446-3212)/512=-3659/512=[b]-111,001001011[/b]

Или я что-то не так понял?

 
 
 
 Re: Сумма двух отрицательных чисел плавающей точкой двоичный код
Сообщение27.10.2009, 09:36 
Вы гений, спасибо огроменное - вы подтолкнули меня на один шажок в понимании этого всего
Я еще не был так рад за реальную помощь на форуме. Вопрос закрыт.

ПС: Вы б просто видели как на wasm.ru меня не поняли (а я тем более)

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group