Он не различает их. Но с дополнением, вычисление тем же:
Ниже d
будет добавляться к десятичным числам, и b
в двоичные числа. Вычисления будут содержать 8 битов.
-1d + 1d = 1111 1111b + 1b = 1 0000 0000b
Но так как мы переполнена (да, это 8 0
s и 1
на через 8 бит чисел), то результат будет равен 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
А если рассматривать эти операции на неподписанных (двоичные значения будут неизменными):
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
Unsigned против подписал, таким образом, просто визуальное представление без знака, используется только при отображении человеку :-)
см. Http://en.wikipedia.org/wiki/Signedness и http://en.wikipedia.org/wiki/Signed_number_representations – mtijn
Я не спрашиваю, как подписанное число, представленное на компьютере – viperchaos
, вы прочитали ссылки? они были опубликованы, потому что они имеют отношение к вашему вопросу. – mtijn