Nie znalazłem jeszcze dobrego wyjaśnienia tego w Internecie, więc mam nadzieję, że ktoś tutaj może mi to wyjaśnić.Zaokrąglanie liczb zmiennoprzecinkowych po dodaniu (gwardia, lepkie i okrągłe bity)
Chcę dodać dwie liczby binarne ręcznie:
1,001 * 2
1.010,0000,0000,0000,0000,0011 * 2
Mogę dodać je bez problemu, otrzymuję następujący wynik po dezaktualizacji pierwszego numeru, dodaniu dwóch i ponownym normalizowaniu ich.
1.1100,0000,0000,0000,0000,0011 * 2
Problem jest, że liczba ta nie będzie pasować do pojedynczej precyzji IEEE Format 754 bez obcinania lub zaokrąglając jeden bit. Moje zadanie wymaga, abyśmy umieścili ten numer w formacie IEEE 754 o pojedynczej precyzji (co zwykle nie stanowi problemu, mogę to zrobić tak łatwo). Prosi nas, abyśmy zrobili to najpierw z ochronnymi, okrągłymi i lepkimi bitami, a następnie powtórzyć bez tych bitów. Jednak nie jestem do końca pewien, w jaki sposób te bity pomagają w zaokrąglaniu. Zakładam, że po prostu skracałbym ostatni LSB, gdybym robił to bez ochronnych, okrągłych i lepkich bitów.
Może to pomóc: http://pages.cs.wisc.edu/~david/courses/cs552/S12/handouts/guardbits.pdf –
Zamiast skracania, zastanów się nad zastosowaniem zaokrąglenia bezpośrednio do nieskończenie precyzyjna odpowiedź. –
@Rick Regan_It był pomocny :) – Pooria