Числа в компьютерных системах хранятся как 2 дополнительных.Если число положительное, то 2 положительных числа одинаковы. Но для отрицательных чисел оно отличается.
1.-2 -> 1 Здесь -2 будет храниться в компьютере как 1110 (то есть 2 дополнения-2). Теперь ~ 1110 равно 0001. Поскольку 0001 является положительным числом, оно будет сохранено в компьютере как 0001 (т.е. 1)
2.-1 -> 0 Здесь -1 будет сохранено в компьютере как 1111(т. е. 2 дополняют -1). Теперь ~ 1111 равно 0000. Поскольку 0000 - положительное число, оно будет сохранено в компьютере как 0000 (т. е. 0)
0 -> -1 Здесь 0 будет храниться в компьютере как 0000 (т.е. дополнение 2 к 0). Число ~ от 0000 равно 1111. Поскольку 1111 является отрицательным числом, оно будет сохранено в компьютере как 0001 (т.е.-1) (поскольку MSB установлен на 1111, число будет отрицательным)
1 -> -2 Здесь 1 будет храниться в компьютере как 0001 (то есть, 2 дополняют 1).Теперь ~ 0001 равно 1110. Поскольку 1110 является отрицательным числом, оно будет сохранено в компьютере как 0010 (то есть-2) (поскольку MSB установлен на 1110, число будет отрицательным)