Konwertuj liczbę dziesiętną na binarny format IEEE 754

Autor: John Pratt
Data Utworzenia: 15 Luty 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
HOW TO: Convert Decimal to IEEE-754 Single-Precision Binary
Wideo: HOW TO: Convert Decimal to IEEE-754 Single-Precision Binary

Zawartość

W przeciwieństwie do ludzi komputery nie używają systemu liczb dziesiętnych. Używają binarnego lub binarnego systemu liczbowego z dwiema możliwymi cyframi, 0 i 1. Tak więc liczby są zapisywane zupełnie inaczej w IEEE 754 (standard IEEE do przedstawiania liczb binarnych za pomocą liczb zmiennoprzecinkowych) niż w tradycyjnym systemie dziesiętnym, który mamy być przyzwyczajonym. W tym artykule dowiesz się, jak zapisywać liczby z pojedynczą lub podwójną precyzją zgodnie z IEEE 754. W przypadku tej metody musisz wiedzieć, jak konwertować liczby do postaci binarnej. Jeśli nie wiesz, jak to zrobić, możesz się tego nauczyć, zapoznając się z artykułem Zamiana liczb dwójkowych na dziesiętne.

Do kroku

  1. Wybierz pojedynczą lub podwójną precyzję. Podczas pisania liczby z pojedynczą lub podwójną precyzją kroki do pomyślnej konwersji będą takie same dla obu. Jedyna zmiana zachodzi w zamianie wykładnika i mantysy.
    • Najpierw musimy zrozumieć, co oznacza pojedyncza precyzja. W reprezentacji zmiennoprzecinkowej każda liczba (0 lub 1) jest uważana za „bit”. Dlatego pojedyncza precyzja obejmuje łącznie 32 bity podzielone na trzy różne tematy. Przedmioty te składają się ze znaku (1 bit), wykładnika (8 bitów) i mantysy lub ułamka (23 bity).
    • Z drugiej strony podwójna precyzja ma taką samą konfigurację i te same trzy części, co pojedyncza precyzja - jedyną różnicą jest to, że będzie to większa i dokładniejsza liczba. W tym przypadku znak będzie miał 1 bit, wykładnik 11 bitów, a mantysa 52 bity.
    • W tym przykładzie zamierzamy przekonwertować liczbę 85,125 na pojedynczą precyzję zgodnie z IEEE 754.
  2. Oddziel liczbę przed i po przecinku. Weź liczbę, którą chcesz przekonwertować i oddziel ją, tak aby pozostała liczba całkowita i liczba dziesiętna. W tym przykładzie przyjmujemy liczbę 85125. Możesz podzielić to na liczbę całkowitą 85 i dziesiętną 0,125.
  3. Zamień liczbę całkowitą na liczbę binarną. To staje się 85 z 85.125, które po przekonwertowaniu na binarne stanie się 1010101.
  4. Zamień część dziesiętną na liczbę binarną. To jest 0,125 z 85,125, co daje 0,001 w formacie binarnym.
  5. Połącz dwie części liczby, które zostały przekonwertowane na liczby binarne. Liczba 85 jest dwójkowa, na przykład 1010101, a część dziesiętna 0,125 to binarna 0,001. Jeśli połączysz je z przecinkiem, otrzymasz 1010101,001 jako ostateczną odpowiedź.
  6. Zamień liczbę binarną na binarną notację naukową. Możesz przekonwertować liczbę na binarną notację naukową, przesuwając przecinek dziesiętny w lewo, aż znajdzie się na prawo od pierwszego bitu. Liczby te są znormalizowane, co oznacza, że ​​wiodącym bitem będzie zawsze 1. Jeśli chodzi o wykładnik, to liczba przesunięć dziesiętnych jest wykładnikiem w binarnej notacji naukowej.
    • Pamiętaj, że przesunięcie ułamka dziesiętnego w lewo daje dodatni wykładnik, podczas gdy przesunięcie ułamka dziesiętnego w prawo daje wykładnik ujemny.
    • W naszym przykładzie musisz przesunąć liczbę dziesiętną sześć razy, aby znalazła się na prawo od pierwszego bitu. Wynikowy format to 01,01010100126{ displaystyle 01.010101001 * 2 ^ {6}}Określ znak liczby i wyświetl go w formacie binarnym. Teraz określisz, czy pierwotna liczba jest dodatnia czy ujemna. Jeśli liczba jest dodatnia, zapisz ten bit jako 0, a jeśli jest ujemny, jako 1. Ponieważ pierwotna liczba jest dodatnia 85,125, zapisz ten bit jako 0. To jest teraz pierwszy bit z wszystkich 32 bitów w pojedynczej precyzji renderowanie zgodnie z IEEE 754.
    • Określ wykładnik na podstawie dokładności. Istnieje stałe odchylenie zarówno dla pojedynczej, jak i podwójnej precyzji. Odchylenie wykładnika dla pojedynczej precyzji wynosi 127, co oznacza, że ​​musimy dodać poprzednio znaleziony wykładnik binarny. Więc wykładnik, którego będziesz używać, to 127 + 6 = 133.
      • Podwójna precyzja, jak sama nazwa wskazuje, jest dokładniejsza i może pomieścić większe liczby. Stąd odchylenie wykładnika 1023. Tutaj obowiązują te same kroki, co w przypadku pojedynczej precyzji, więc wykładnik, którego można użyć do określenia podwójnej precyzji, to 1029.
    • Zamień wykładnik na binarny. Po określeniu końcowego wykładnika należy go przekonwertować na binarny, aby można go było użyć w konwersji IEEE 754. W tym przykładzie możesz przekonwertować liczbę 133 znalezioną w ostatnim kroku na 10000101.
    • Określ mantysę. Aspekt mantysy, czyli trzecia część konwersji IEEE 754, jest pozostałą częścią liczby po przecinku naukowej notacji binarnej. Po prostu pomijasz 1 z przodu i kopiujesz dziesiętną część liczby pomnożoną przez dwa. Nie jest wymagana żadna konwersja binarna! W tym przykładzie mantysa staje się 010101001 of 01,01010100126{ displaystyle 01.010101001 * 2 ^ {6}}Na koniec połącz trzy części w jedną liczbę.
      • Na koniec łączysz w konwersji wszystko, co do tej pory obliczyliśmy. Numer zaczyna się najpierw od 0 lub 1, które określono w kroku 7 na podstawie znaku. W tym przykładzie zaczynasz od 0.
      • Następnie masz wykładnik określony w kroku 9. W tym przykładzie wykładnik to 10000101.
      • Potem następuje mantysa, trzecia i ostatnia część nawrócenia. Wydedukowałeś to wcześniej, biorąc część dziesiętną konwersji binarnej. W tym przykładzie mantysa to 010101001.
      • Na koniec łączysz ze sobą wszystkie te liczby. Kolejność to znak-wykładnik-mantysa. Po połączeniu tych trzech liczb binarnych uzupełnij resztę mantysy zerami.
      • Na przykład, rozwiązaniem jest konwersja 85.125 na binarny format IEEE 754 0 10000101 01010100100000000000000.