Nie rozróżnia ich. Ale z dopełnieniem obliczenia są takie same:
Poniżej d
zostanie dodany do liczb dziesiętnych, a b
do liczb binarnych. Obliczenia będą na liczbach 8 bitowych.
-1d + 1d = 1111 1111b + 1b = 1 0000 0000b
Ale ponieważ mamy przepełnienie (tak, to 8 0
s oraz 1
na A 8 bitowych liczb całkowitych), wynik jest równy 0.
-2d + 1d = 1111 1110b + 1b = 1111 1111b = -1d
-1d + 2d = 1111 1111b + 10b = 1 0000 0001b (this overflows) = 1b = 1d
-1d + -1d = 1111 1111b + 1111 1111b = 1 1111 1110b (this overflows) = 1111 1110b = -2d
A jeśli wziąć pod uwagę te operacje na niepodpisanych (wartości binarnych będzie bez zmian):
255d + 1d = 1111 1111b + 1b = 1 0000 0000b (this overflows) = 0d
254d + 1d = 1111 1110b + 1b = 1111 1111b = 255d
255d + 2d = 1111 1111b + 10b = 1 0000 0001b (this overflows) = 1b = 1d
255d + 255d = 1111 1111b + 1111 1111b = 1 1111 1110b (this overflows) = 1111 1110b = 2d
Niepodpisana kontra podpisany jest więc tylko wizualna reprezentacja Niepodpisany, używany tylko podczas wyświetlania człowiekowi :-)
patrz http://en.wikipedia.org/wiki/Signedness i http://en.wikipedia.org/wiki/Opisane_numer_reprezentacji – mtijn
Nie pytam, w jaki sposób podpisany numer reprezentowany w komputerze – viperchaos
przeczytałeś spinki do mankietów? zostały opublikowane, ponieważ są istotne dla twojego pytania – mtijn