• 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

Object Storage Arubacloud
0 głosów
265 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,290 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ź 247 wizyt
0 głosów
0 odpowiedzi 603 wizyt
0 głosów
1 odpowiedź 1,689 wizyt

92,568 zapytań

141,422 odpowiedzi

319,637 komentarzy

61,957 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...