컴파일러 및 음수 표현
-
22-08-2019 - |
문제
최근에 나는 혼란스러웠다. 이 질문.어쩌면 언어 사양을 읽지 않았기 때문일 수도 있습니다(내 잘못입니다. 알아요).
C99 표준은 컴파일러에서 어떤 음수 표현을 사용해야 하는지 명시하지 않습니다.나는 항상 음수를 저장하는 유일한 올바른 방법은 2의 보수(대부분의 경우)라고 생각했습니다.
내 질문은 다음과 같습니다.기본적으로 1의 보수 또는 부호 크기 표현을 구현하는 현재 컴파일러를 알고 있습니까?일부 컴파일러 플래그를 사용하여 기본 표현을 변경할 수 있나요?
어떤 표현이 사용되는지 결정하는 가장 간단한 방법은 무엇입니까?
그러면 C++ 표준은 어떻습니까?
해결책
컴파일러가 어떤 표현을 사용하는지에 대한 문제가 아니라 기본 기계가 어떤 표현을 사용하는지에 대한 문제가 아닙니다. 컴파일러는 대상 머신에서 지원하지 않는 표현을 선택하는 것이 매우 어리석은 일입니다. 왜냐하면 그 이점이 없기 위해 많은 오버 헤드를 도입하기 때문입니다.
IP 프로토콜 제품군의 일부 체크섬 필드는 자신의 보완을 사용하므로 전용 "네트워크 가속기"-유형 CPU : S 구현을 구현합니다.
다른 팁
그만큼 유니시스 2200 시리즈 보수 수학을 구현하는 것은 여전히 사용 중입니다.아래 질문에서 자세한 내용을 읽을 수 있습니다.
제휴하지 않습니다 StackOverflow