Сумма двух отрицательных чисел с плавающей точкой

Тема в разделе "WASM.BEGINNERS", создана пользователем xcislav, 26 окт 2009.

  1. xcislav

    xcislav New Member

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

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

    Код (Text):
    1. Второе задание ( - А3/256 – А4/512   в дополнительном коде):
    2. В десятичном:           -223/256_____________ -3213/512
    3. В двоичном:           -0,1101111_____________ -110,010001101
    4. Нормализация:      -0,00011011111 +3______ -0,110010001101 +3
    5. В прямом коде:   [1]0,00011011111 +3____ [1]0,110010001101 +3
    6. В дополнительном:[1]1,11100100001 +3____ [1]1,001101110011 +3
    7.  
    8. Сложение:
    9. [1]1,111001000010  +3
    10. +
    11. [1]1,001101110011  +3
    12. =
    13. [1]1,000110110101  +3
    14.  
    15. есть перенос 1 (тут я вспомнил препод сказал. что "1" добавляется в конец мантиссы) выходит
    16. [1]1,000110110101  +3  = [1]1000,1101101011 <ВОТ ОНО ДОБАВИЛОСЬ
    17.  
    18. Итак проверим:
    19. -223/256 - 3213/512 = (-446-3212)/512=-3659/512=[b]-111,001001011[/b]
    20.  
    21. [1]1000,1101101011 (инверсный) => -111,0010010100
    Не совпадает - совпадает все кроме последних цифр - который день бьюсь
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.874
    Судя по заданию, числитель у вас в шестнадцатеричной системе, а знаменатель почему-то в десятичной, хотя ни там, ни там спецификаторов не поставлено (h - hex - шестнадцатеричная система, d - dec - десятичная, b - bin - двоичная)
    ну допустим, что это так:
    512=2^9
    -0A3h/256d - 0A4h/512d= -163d/256d - 164d/512d= -(163d*2d +164d)/512d = -490d/512d= -111101010b*2^(-9)= - 0,111101010b переводим в нормализованный вид = -1,11101010b*2^(-1)
    теперь как бы это число выглядело бы в FPU
    0BF750000h расписываю его по-битно 10111111011101010000000000000000b
    10111111011101010000000000000000b|Знак числа 0=«+» 1=«-»
    10111111011101010000000000000000b|Порядок 7Eh=-1 в смещенном коде -128+127=-1
    10111111011101010000000000000000b|мантисса числа=(1),11101010000000000000000
     
  3. xcislav

    xcislav New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2009
    Сообщения:
    4
    A(1-3) номер по варианту .. все числа в десятичной.. ниже написано
    В десятичном: -223/256_____________ -3213/512
     
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.874
    xcislav
    Можете написать задание нормально, слово в слово, да и может книжку вам самому лучше прочитьать? можно и пример из книжки привести - я не экстрасенс и чего от вас хочет преподаватель я не очень понимаю
     
  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.874
    -223/256 - 3213/512 =-223*2^(-8) – 3213*2^(-9) =-(223*2+3213)*2^(-9)=-3659*2^(-9)=
    ==-111001001011b*2^(-9)= 11111111111000110110101b*2^(-9) в дополнительном коде
    сложение:
    -223*2*2^(-9)= 11111111111111111111111001000010b*2^(-9)в дополнительном коде
    +
    -3213*2^(-9)= 11111111111111111111001101110011b*2^(-9)в дополнительном коде
    =
    11111111111111111111000110110101b*2^(-9)что и требовалось доказать
    для всех вычислений использовался Windows-калькулятор
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Скоро уже никто и не будет знать разницы между плавающей и фиксированной точкой. Куды катимся...
     
  7. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.874
    valterg
    Дело в том, что ТС так и не откликнулся. Попробуйте разобраться с заданием, где часть чисел (знаменатели) относятся собстенно к заданию, а часть (числители) обозначают номер варианта. Для чего превращать числа в инверсный код, а потом их складывать? Или имеется в виду в инверсный код переводить только результат? Числа в FPU это двойные слова, учетверенные слова, десять байтов или, как в паскале, представление вещественного числа в виде шести байтов? Или может быть имеется в виду FPU не от Intel/AMD? Преподаватель ТС в курсе, что в FPU числа представлены грубо как знак и модуль? (на самом деле знак, порядок, мантиса и скрытая/открытая целая часть)
     
  8. xcislav

    xcislav New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2009
    Сообщения:
    4
    да все уже решено на другом форуме... тут вообще не так
    спасибо тому челу, он просто исправил мою одну ошибку

    вопрос закрыт (был формулирован предельно ясно)
     
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.874
    решение
     
  10. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Ага, каждый тут со своими проблемами приходит,таких как ты тысячи и каждому помоги,за бесплатно