Sensownosc unsigned na małych liczbach

0

Witam, przychodzę do was z pytaniem o sensowność użycia unsigned na zmiennej, której z góry wiadomo, że będzie przechowywać małe liczby jak 10, 100, 1,000, 10,000 Czy użycie go ma jakikolwiek wpływ na kod, poza brakiem możliwości korzystania z liczb ujemnych? Jedyne co mi przychodzi do głowy, to to, że podczas operowania na tablicach przypadkiem nie odwołamy się do ujemnego wiersza.

0

jedyny wpływ jaki ma to na kod to inne instrukcje dzielenia i mnożenia. Dodawanie i odejmowanie dla liczb ze znakiem i bez znaku ma wspólna instrukcje.

2

dodatkowo kompilator jak masz odpowiednio warny ustawione podpowie Ci że coś jest nie tak jakbyś chciał wyjść poniżej 0. No i zyskujesz też wyższy gorny zakres itp.

Przy operowaniu na tablicach to może lepiej użyć typów semantycznych jak np. size_t? (też jest unsigned, ale lepiej oddaje że chodzi o rozmiar tablicy/index). Poza tym jak się przyzwyczaisz do unsigned w pętlach to łatwiej jest zrozumieć iteratory...

Jeżeli natomiast liczba ma służyć do obliczeń a nie indeksacji, i wiesz że się zmieścisz w int, dajesz int i się nie przejmujesz ;)

2

indeksy i rozmiary tablic powinny być typu size_t. do tego ten typ służy, i warto się przyzwyczaić.
jest to zgodnie ze standardem typ unsigned.

1 użytkowników online, w tym zalogowanych: 0, gości: 1