logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak obliczyć mantysę liczby 0,81640625 w systemie binarnym?

De[vvv]il Blast 17 Sie 2005 20:24 903 2
REKLAMA
  • #1 1742234
    De[vvv]il Blast
    Poziom 11  
    Posty: 57
    Ocena: 1
    Mam 2 małe pytanka z zakresu techniki cyfrowej.
    Przerabiam obecnie format zmiennoprzecinkowy i mam problem przy obliczaniu mantysy:
    Dla przykładu weźmy liczbę
    L=0,81640625 * 2^(20)
    Do obliczenia mantysy muszę liczbę 0,81640625 przekształcić na ciąg binarny gdzie np. 1011 = 1 * 2^(-1) + 0 * 2^(-2) + 1 * 2^(-3) + 1 * 2^(-4).
    Wiem z notatek, że 0,81640625 to 0,11010001 (2^(-1) + 2^(-2) + 2^(-4) + 2^(-8)), ale niestety nie wiem, jak to zostało obliczone, a tylko tego mi brakuje do pełnego zrozumienia tematu więc jakby mi ktoś pomógł byłbym wdzięczny:) Siedziałem nad tym dość długo, szukałem na googlach i 0 rezultatów:)

    Drugi problem, to jak budować macierz testów Hamminga. Mam do tego tematu jedną książkę, ale niestety nie za dużo rozumiem.

    Z góry dzięki za wszelkie informacje.
  • REKLAMA
  • Pomocny post
    #2 1743163
    WojtasJD
    Poziom 43  
    Posty: 13775
    Pomógł: 2911
    Ocena: 1577
    De[vvv]il Blast napisał:

    Wiem z notatek, że 0,81640625 to 0,11010001 (2^(-1) + 2^(-2) + 2^(-4) + 2^(-8)), ale niestety nie wiem, jak to zostało obliczone, a tylko tego mi brakuje do pełnego zrozumienia tematu więc jakby mi ktoś pomógł byłbym wdzięczny:) Siedziałem nad tym dość długo, szukałem na googlach i 0 rezultatów:)


    a może tą część ułamkową wyznaczono tak jak tu (Google):

    http://old.lo2.opole.pl/nauka/informatyka/syspoz/

    (kolejno mnożę przez 2 i porównuje z jedynką - jak większa to przed kolejnym mnożeniem od wyniku odejmuje 1 )

    0,81640625 x 2 = 1,63281250 -> bit 1 (bo wynik większy od 1)
    0,63281250 x 2 = 1,26562500 -> bit 1
    0,26562500 x 2 = 0,53125000 -> bit 0 (bo wynik mniejszy od 1)
    0,53125000 x 2 = 1,06250000 -> bit 1
    0,06250000 x 2 = 0,12500000 -> bit 0
    0,12500000 x 2 = 0,25000000 -> bit 0
    0,25000000 x 2 = 0,50000000 -> bit 0
    0,50000000 x 2 = 1,00000000 -> bit 1

    Otrzymany ciąg bitów zapisuje od góry do dołu:
    0,81640625 => 0,11010001

    może ten link też się przyda:
    http://www.i-lo.tarnow.pl/edu/inf/prg/pmc/pages/03.htm
  • #3 1743569
    De[vvv]il Blast
    Poziom 11  
    Posty: 57
    Ocena: 1
    Wielkie dzięki:) Jak sam próbowałem dojść do odpowiedzi, to zacząłem odwracać konwersje z bin na dec i też zacząłem mnożyć przez 2, ale na odejmowanie 1 bym nie wpadł:)
REKLAMA