побитовое и отрицательное целое число отличается от побитового и положительное целое - PullRequest
0 голосов
/ 08 июня 2018

Я нашел несколько потоков относительно побитовой операции над отрицательным целым числом, и я нашел один, который очень полезен, он говорит, что побитовая операция с отрицательным целым числом такая же, как положительное целое число, но когда я проверял -4 & -5 в 3на разных языках (C ++, Object (FPC) -Pascal и Dlang) все они вывели -8, а 4 и 5 - 4, почему они разные?

1 Ответ

0 голосов
/ 08 июня 2018

Хотя это и не требуется большинством языков (C и C ++ и Pascal определенно этого не делают; я не знаю о D), по сути, все современные компьютеры используют дополнение к двум для целых чисел.

  ..0 0100 = positive 4  
& ..0 0101 = positive 5  
= ..0 0100 = positive 4

  ..1 1100 = negative 4  
& ..1 1011 = negative 5  
= ..1 1000 = negative 8
...