• 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

VPS Starter Arubacloud
0 głosów
371 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,320 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ź 258 wizyt
0 głosów
0 odpowiedzi 763 wizyt
0 głosów
1 odpowiedź 1,722 wizyt

92,840 zapytań

141,781 odpowiedzi

320,856 komentarzy

62,172 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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...