Różnica między podpisanym a niepodpisanym

Podpisano vs Podpisano

Nasz system liczb rozciąga się od ujemnej nieskończoności do dodatniej nieskończoności, przy czym zero znajduje się pośrodku. Jednak w programowaniu istnieją zasadniczo dwa rodzaje liczb; podpisany i niepodpisany. Główną różnicą między liczbą podpisaną a niepodpisaną jest, no cóż, możliwość użycia liczb ujemnych. Numery niepodpisane mogą mieć tylko wartości zero lub większe. Natomiast liczby ze znakiem są bardziej naturalne, a zakres obejmuje liczby ujemne do dodatnich.

Utworzenie liczb podpisanych i niepodpisanych było spowodowane koniecznością przedstawienia wartości liczbowych przy bardzo ograniczonych zasobach. Na przykład przy użyciu 8 bitów masz tylko 256 kombinacji. W przypadku liczby bez znaku oznacza to dowolną wartość z zakresu od 0 do 255. W przeciwieństwie do tego, że liczba podpisana oznacza, że ​​straciłeś już trochę za reprezentację znaku. Z 7 bitami masz maksymalnie 128 kombinacji, więc twój zakres z 8-bitową liczbą ze znakiem wynosi od -128 do 127. Więc jeśli masz ograniczone zasoby, jak na początku obliczeń, używanie niepodpisanych liczb było najlepszym wyjściem.

Podczas korzystania z podpisanych i niepodpisanych liczb w programowaniu bezpieczniej jest po prostu użyć jednego lub drugiego, ponieważ jednoczesne używanie obu może powodować problemy. Pierwszy dotyczy porównania niepodpisanego z podpisanym numerem. Zwykle powoduje to ostrzeżenia, ale kompilator i tak może go skompilować. Drugi i poważniejszy problem dotyczy przypisania zawartości niepodpisanego numeru do podpisanego numeru. Jeśli wartość niepodpisanego numeru jest większa niż maksymalna wartość podpisanego numeru, spowoduje to błąd.

W miarę rozwoju technologii zasoby stają się coraz bardziej obfite, a korzystanie z niepodpisanych liczb staje się coraz mniej potrzebne. Aby to zilustrować, należy pamiętać, że 32-bitowa liczba może mieć maksymalną podpisaną wartość 2 milionów lub 4 milionów, jeśli nie jest podpisana. Po przejściu na 64 bity różnica wynosi między 90 a 180 kwintylionów; wartości, które są rzadko używane, jeśli w ogóle we wspólnych programach.

Streszczenie:

1.Podpisana liczba zawiera tylko liczby zerowe i dodatnie, podczas gdy podpisane liczby zawierają liczby ujemne.
2. Numery podpisane mają połowę maksymalnej wartości liczb niepodpisanych.
3.Miksowanie podpisanych i niepodpisanych numerów może powodować problemy.
4.Używanie podpisanych lub niepodpisanych numerów ma niewielkie znaczenie w nowoczesnych aplikacjach.