Pokaż wyniki 1 do 4 z 4

Temat: Zamiana formatu float na int

  1. #1

    Domyślnie Zamiana formatu float na int

    Cześć,
    mam problem z zamianą formatu 32-bitowego float na int. Czy ktoś wie jakie operacje trzeba przeprowadzić, żeby osiągnąć liczbę w tym formacie?

    W konwersji int na float wystarczy dzielić liczbę przez 2 i uzyskane reszty są naszymi składnikami mantysy, próbowałem przeprowadzać konwersję odwrotną do tej żeby uzyskać float na int ale coś nie wychodzi.

    Proszę o pomoc.
    Pozdrawiam

  2. #2

    Domyślnie

    Mowa o standardzie IEEE 754? Jeśli tak to przykładowo mamy liczbę -7.25 co odpowiada zapisie float:
    Kod:
    1 10000001 11010000000000000000000
    Pierwszy bit(licząc od lewej) to bit znaku, 1 odpowiada liczbie ujemnej. Pierwszy bit oznaczmy jako literę s.

    Kolejne 8 bitów cecha. Jest ona kodowana w systemie z nadmiarem 127. Także konwertujemy ją na zapis dziesiętny należy następnie odjąć 127. Odejmując od 129 liczbę 127 otrzymujemy wykładnik potęgi, do której musimy podnieś 2. 129 - 127 = 2. Wykładnik oznaczmy jako literę c.

    Reszta bitów to mantysa. Przed zamianą ją na system dziesiętny należy dopisać 1 poprzedzony kropką z lewej strony.
    Kod:
    1.11010000000000000000000
    Po zamianie mantysy na system dziesiętny otrzymujemy: 1.8125. Mantysę oznaczmy jako literę m.

    Teraz aby otrzymać wynik korzystamy ze wzoru:
    (-1)^s * 2^c * m
    (-1)^1 * 2^2 * 1.8125
    -1 * 4 * 1.8125 = -7.25

  3. #3

    Domyślnie

    Dzięki za wytłumaczenie tego meviu. W zasadzie bardziej chodziło mi o to jak wygląda ciąg instrukcji dokładnej zamiany float 32-bitowego na int 32-bitowy(jak poprzesuwac bity itd.) znalazłem taki artykuł:
    Kod html:
    http://www.codeproject.com/Articles/10679/Convert-Float-to-Int-using-Assembly-Language-Progr

  4. #4
    Zarejestrowany
    Dec 2018
    Skąd
    Croatia
    Postów
    17

    Domyślnie Zamiana formatu float na int

    How do I use irr::io::IXMLWriter::writeElement to save int, float, and bool values to xml?

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj