2016-07-20 8 views
0

2'complement에 대해 이야기하면 MSB이 부호 비트로 사용됩니다. 예를 들어, 8 비트에서 2'complementsigned 표기법 01111111+127이고 11111111-128입니다. 그러나 그 반대의 경우 11111111은 에서 unsigned notation입니다. 프로세서가 숫자가 signed 또는 unsigned인지 어떻게 알 수 있습니까? 이 목적을 위해 사용 된 다른 비트가 있습니까? 컴파일러가 무엇인가?프로세서가 부호없는 번호와 부호있는 번호를 알게되는 이유는 무엇입니까?

답변

1

2의 보수의 장점은 산술 연산의 비트 연산이 정확하게 unsigned과 동일하다는 것입니다. 그래서 가장 가능성이있는 프로세서는 원숭이를주지 않습니다.

1의 보수 연산 (다른 것 중에서도 보완 감산기 필요) 또는 부호있는 크기 산술에 대해서는 동일하다고 할 수 없습니다.

+0

'Negation ~'연산자를 '1111 '에 적용한다고 가정 해 봅시다. -111은 무엇이 답이 될까요? 당신의 진술은 아마도 내가 이해할 때 아마 뺄셈이나 뺄셈에 사실 일 수 있습니다. –

+0

내가 프로세서라면, 누군가 나에게 nubmer를 주었다. 나는 그것이 'signed'인지 'unsigned'인지를 알아야 할 것인가? –

+0

아니요. 프로세서가 아닌 경우 상관 없습니다. 당신은 당신의 작업을 수행합니다. – GabrielOshiro