• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kodowanie liczb w formacie stałoprzecinkowym ZM

Aruba Cloud - Virtual Private Server VPS
0 głosów
461 wizyt
pytanie zadane 26 stycznia 2021 w Egzaminy zawodowe przez alivedeath Nowicjusz (170 p.)

Cześć, 

Potrzebuje pomocy mam za zadanie zakodować liczbę 13,625 w formacie stałoprzecinkowym ZM, w którym:

Bity 0-3 kodują część całkowitą

Bity 4-6 kodują znak liczby

Bit 7 koduje znak liczby

Doszedłem do tego, że część całkowita to po prostu zamiana na binarny więc mam tyle : 

13(dziesiętny) -> 1101(binarny)

Znak -> 0

0 _ _ _ 1101

Nie mam pojęcia jak zakodować część ułamkową proszę o pomoc! Najlepiej jakby ktoś się poświęcił i rozpisał metodę obliczania <3

1 odpowiedź

0 głosów
odpowiedź 27 stycznia 2021 przez Oscar Nałogowiec (29,340 p.)
wybrane 27 stycznia 2021 przez alivedeath
 
Najlepsza

Coś pokręciłeś w opisie - masz dwa razy "koduje znak liczby".

Ogólnie kolejne bity części ułamkowej (jak się domyślam o to chodzi) mają wagi 1/2, 1/4, 1/8, 1/16 itd. Ogólnie dwa do kolejnych potęg ujemnych (2 do -1, 2 do -2, 2 do -3 itd).

0.634 to będzie tak:

  1. jest większe niż 1/2 więc pierwszy bit za przecinkiem jest 1. Odejmujemy 1/2 (0.5) i zostaje 0.134
  2. 0.134 jest mniejsze niż 1/4 (0.25) - kolejne będzie 0
  3. 0.134 jest większe niż 1/8 (0.125) - kolejny bit to 1. Odejmujemu 0.125 zostaje 0.009.
  4. 0.009 jest mniejsze niż 1/16 (0.0625) - kolejny bit to 0
  5. 0.009 jest mniejsze niż 1/32 (0.03125) - kolejny bit to 0

Dostajemy .10100 - i to nie jest skończony wynik. Ułamki, które w systemie dziesiętnym mają skończoną reprezentację, w układzie dwójkowym mogą mieć nieskończoną, tak że wynik na skończonej liczbie bitów nie musi być dokładny.

By nie liczyć na ułamkach zawsze możesz obie strony pomnożyć przez jakąś potęge dwójki, np 256 (przesunięcie o 8 bitów). Wtedy 256 * 0.634 = 162 a to binarnie jest 10100010 - jak widać, po przesunięciu w prawo najstarsze bity się zgadzają.

 

komentarz 27 stycznia 2021 przez alivedeath Nowicjusz (170 p.)
Dzięki za pomoc!

Podobne pytania

+1 głos
1 odpowiedź 298 wizyt
0 głosów
0 odpowiedzi 850 wizyt
0 głosów
1 odpowiedź 1,774 wizyt

93,281 zapytań

142,285 odpowiedzi

322,304 komentarzy

62,604 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...