2013-01-14 4 views
-3

내가 0의 보수를 계산할 때 대답이 -1이됩니다. 11111111처럼 큰 숫자 여야한다고 생각했습니다 (얼마나 많은 비트가 사용되는지는 모르겠다. 방금 8 진수로 썼습니다.왜 C++이 결과를 반환합니까

+4

모든 것들은 -1로 2를 보완합니다. –

답변

10

통합형 unsigned을 사용하십시오. 부호있는 정수에 대한 비트 연산에는 많은 구현 정의 동작이 있습니다.

0

값을 2의 보수로 해석하면 모든 비트 집합은 -1입니다.

+1

그 반대의 경우가 아닙니까? " '모든 비트 세트'가 2의 보수로 해석되면 -1 값을 나타냅니다." 정말로 정수를 해석 할 수는 없습니다. –

관련 문제