Różnica między podpisanymi i niepodpisanymi
- 3382
- 674
- Hilarion Porębski
Podpisany vs unsigned
Nasz system liczb rozciąga się od ujemnej nieskończoności do dodatniej nieskończoności z zerową prosto na środku. Jednak w programowaniu istnieją w zasadzie dwa rodzaje liczb; Podpisane i niepodpisane. Główną różnicą między podpisaną a liczbą niepodpisaną jest, cóż, możliwość używania liczb ujemnych. Liczby niepodpisane mogą mieć tylko wartości zero lub większe. Natomiast podpisane liczby są bardziej naturalne z zakresem, który obejmuje liczby ujemne do dodatnich.
Utworzenie liczb podpisanych i niepodpisanych zostało spowodowane potrzebą reprezentowania wartości liczbowych z bardzo ograniczonymi zasobami. Na przykład, używając 8 bitów, masz tylko 256 kombinacji. Z liczbą niepodpisaną oznacza to dowolną wartość od 0 do 255. Natomiast posiadanie podpisanego numeru oznacza, że już trochę stracisz za reprezentowanie znaku. Z 7 bitami masz maksymalnie 128 kombinacji, więc Twój zasięg z 8 -bitową liczbą wynosi od -128 do 127. Jeśli więc masz ograniczone zasoby, jak we wczesnych dniach obliczeń, używanie liczb niepodpisanych było drogą.
Podczas korzystania z podpisanych i niepodpisanych liczb w programowaniu bezpieczniej jest po prostu użycie jednego lub drugiego jako jednocześnie korzystanie z obu może powodować problemy. Pierwszym z nich jest porównywanie niepodpisanego z podpisanym numerem. Zazwyczaj powoduje to ostrzeżenia, ale kompilator i tak może to skompilować. Drugim i poważniejszym problemem jest przypisanie zawartości niepodpisanego numeru do podpisanego numeru. Jeśli wartość liczby niepodpisanej jest większa niż maksymalna wartość podpisanej liczby, spowodowałoby to błąd.
W miarę rozwoju technologii zasoby stały się coraz obfite, a korzystanie z liczb niepodpisanych staje się coraz mniej konieczne. Aby to zilustrować, pamiętaj, że 32 -bitowa długa liczba może mieć maksymalną wartość podpisaną 2 miliony lub 4 miliony. Po przeprowadzce do 64 bitów różnica wynosi od 90 do 180 kwintillionów; Wartości, które są rzadko używane, jeśli w ogóle we wspólnych programach.
Streszczenie:
1.Liczba niepodpisana obejmuje tylko zero i liczby dodatnie, podczas gdy podpisane liczby zawierają liczby ujemne.
2.Podpisane liczby mają połowę maksymalnej wartości liczb niepodpisanych.
3.Mieszanie podpisanych i niepodpisanych liczb może powodować problemy.
4.Korzystanie z podpisanych lub niepodpisanych liczb ma niewielkie nowoczesne zastosowania.