Próbuję wykonać arytmetykę za pomocą tylko 16-bitowych słów sygnowanych. Muszę umieć dodawać, mnożyć itp.
Jako przykład muszę odjąć dwie wartości danych, poniżej przykład: 7269.554688-46.8 lub 4385.6616210938 + 32,2
Jednak te wartości muszą zostać przekonwertowane na 16-bitowe słowa, a następnie można wykonać odejmowanie, mnożenie lub dodawanie.
Mogłabym również użyć wielu 16-bitowych słów do przechowywania jednej wartości.
Jak chciałbym wykonywać operacje, takie jakdodawanie, odejmowanie i mnożenie, i w jaki sposób przekonwertować wszystkie moje wartości wejściowe odpowiednio, aby punkty dziesiętne zawsze były poprawnie ustawione?
Odpowiedzi:
1 dla odpowiedzi № 1Na jakiej platformie kodujesz? Aby wykonać operacje, które podałeś jako przykład, potrzebujesz jednostki zmiennoprzecinkowej Numery zmiennoprzecinkowe są zwykle reprezentowane przez 32-bitowe lub 64-bitowe, rzadko 16-bitowe.
Jeśli nie masz jednego i wszystkie masz proste operacje na 16-bitowych liczbach całkowitych, możesz emulować jednostkę zmiennoprzecinkową, ale to nie jest trywialne zadanie.