2014-02-16 3 views
0

특히 큰 부호없는 숫자와 큰 음수를 서명했습니다. 나는 두 가지를 분할 할 때 어딘가에 무언가가 (이 긍정적이어야한다는 것을 의미) 부호에 내 서명 숫자로 변환되기 때문에부호있는 음수가 부호없는 숫자로 변환되는 이유는 무엇입니까?

Why can't I divide a large number by a negative number C++

, 나는 단순히 결과 제로를 얻을. >.>;

편집.

정말 분명합니다. 나는 그것이 0으로 해결된다는 것을 알고 그것에 만족합니다. 또한 숫자가 부호가있는 숫자에서 부호없는 숫자로 변환되기 때문에 0으로 결정된다는 이전의 이유에 만족합니다.

그러나 처음에는 숫자가 부호있는 숫자에서 부호없는 숫자로 변환되는 이유에 대해서는 대답하지 않습니다. 그렇게하기위한 논리적 인 이유가없는 것 같습니다.

+0

왜 재 게시? – user1520427

+0

같은 질문이 아닙니까? 당신의 다른 질문이 충분한 답변을받지 못했습니까? –

+1

같은 질문이 아닙니다. 나의 이전 질문은 왜 숫자가 0으로 나오는지에 관한 것이었다. 답변이 없기 때문에 답변이 왜 변환되었는지, 단순히 변환되었는지에 대한 대답은 없습니다. – user3315127

답변

2

산술 연산자의 피연산자에는 동일한 유형이 있어야합니다. 따라서 처리 할 케이스가 줄어들고 하드웨어가 일반적으로 혼합 유형 연산을 지원하지 않기 때문에 언어를 쉽게 정의하고 구현하기가 쉬워집니다. 공식적으로 C++은 가상 머신의 관점에서 정의되지만 실제 하드웨어의 성능에 영향을 받는다. 표준에 의해 지시되지만 하드웨어에서 지원하지 않는 작업 (예 : 가상 서명 된 서명되지 않은 부서)은 라이브러리 코드의 컴파일러 작성자가 구현해야하며 이는 성능에 영향을 미칩니다.

부호가있는 피연산자를 부호없는 것으로 변환해야하거나 그 반대의 경우도 마찬가지입니다. 표준위원회는 전자를 선택했다.

관련 문제