0의 칭찬을 발견하면 -1이됩니다. 0의 보수가 -1 인 이유는 무엇입니까? 항상 -1입니까, 아니면 컴파일러에 의존합니까?ANSI C89의 제로 보완
0
A
답변
2
~0
으로 C로 쓰여진 0의 비트 단위 부정은 컴파일러에서 two's complement을 사용하여 부호있는 정수를 나타내는 경우에만 -1입니다. 따라서 컴파일러가 숫자를 나타내는 방식의 결과이며 일반적으로 "true"가 아닙니다.
0
Two's complement에 -1입니다. 컴파일러는 다른 표현을 자유롭게 선택할 수 있습니다.
+1
... 실제로 사용중인 컴파일러가 없습니다. :) –
+0
@ 존 하나의 보완법을 사용하는 레거시 시스템이 있지만 점점 더 희귀 해지고 있습니다. 저는 보통 C를 코딩 할 때 2의 보수를 가정합니다. C89보다 새로운 구문을 사용하면 아마도 2의 보수를 가정하는 것보다 이식성이 크게 감소 할 것입니다. –
관련 문제
- 1. C89의 고수준 해석 언어
- 2. C89의 어설 션?
- 3. 두리스트의 보완?
- 4. 제로
- 5. 제로
- 6. 제로
- 7. 제로
- 8. 세트의 보완 선택
- 9. ActiveRecord를 보완 하시겠습니까?
- 10. 단어 "보완"탭?
- 11. 1과 2s의 음수를 보완
- 12. C에서 연산자 보완
- 13. 보완 필터의 알파 계산
- 14. 부울 방정식 세트 보완
- 15. JavaScript 보완 색상
- 16. 두 번 보완 문의
- 17. collectionView에서 보완 뷰를 다시로드하는 방법
- 18. PHPUnit & Behat; 보완 또는 대안?
- 19. 돼지에서 테이블의 항목 보완 찾기
- 20. ANY_OTHER을 보완 할 수 없다.
- 21. 네트워크 그래프의 보완 방법은 무엇입니까?
- 22. 보완/부정이 작동하지 않는 바로
- 23. ANSI C -
- 24. ANSI C는
- 25. 선행 제로/제로 패딩이 제대로 작동하지 않습니다.
- 26. 배열 초기화 제로 대 할당 된 제로
- 27. 제로 오류로
- 28. 문제는 제로
- 29. C++ 제로
- 30. 정적 제로
"보완"또는 "칭찬"은 무엇을 의미합니까? 당신은 비트 부정을 의미합니까? –
~ ~ 연산자의 작동을 의미합니다. – user3202188
그렇습니다. 비트 단위 부정. –