2012-03-21 2 views
0

이것은 지난 논문에서 본 질문입니다. 나는 10의 보수를 이해한다고 생각하지만, 2의 칭찬에 관한 다음의 질문을 이해하지 못한다. 또한, 2의 칭찬과 바이너리는 무엇을 관계합니까?2의 보수 데이터 표현

2의 1110으로 표시되는 기수 10의 숫자는 k = 4로 보완됩니까? k = 5이면 답이 바뀔까요?

어떤 도움을 주셔서 감사합니다. 설명해주세요.

+0

비트의 최대 개수를 k? – Glenn

답변

2

2의 보수는 2 진수로 네거티브 수를 나타내는 방법입니다. 어떻게 작동하는지 이해할 수는 없지만 그 뒤에는 수학적 기반이 있습니다. 예를 들어 숫자 6을 취합니다. 이진에서는 0110입니다. 그런 다음 -6을 나타내려면 2의 보수 알고리즘을 적용해야합니다.

알고리즘은 모든 자릿수를 오른쪽에서 왼쪽으로 복사하는 알고리즘입니다. 처음으로 1을 만났을 때 그대로두면되지만 그 지점에서부터 왼쪽으로 나아갈 때 모든 자릿수를 반전시킵니다. 이 예제에서는 오른쪽에서 왼쪽으로가 봅시다. 먼저 우리는 0을가집니다. 그러면 우리는 1을가집니다. 그러는 동안 우리는 10을 갖습니다. 우리가 1을 만났으므로 이제 모든 비트를 반전시켜야합니다. 그래서 다음은 1이고, 우리는 0으로 복사하기 때문에 우리는 이제 010을 갖습니다. 가장 왼쪽의 비트는 0이므로 1로 반전하므로 1010으로 끝납니다. 이것은 -4 자리의 -6입니다. 2의 보수에있는 음수는 항상 MSB에 대해 1입니다 (가장 왼쪽 비트 - Most Significant Bit).

계속하기 전에 간단한 변환 방법이 있습니다. 모든 비트를 반전 한 다음 1을 더하고 같은 결과를 얻습니다. 우리가 0110을 뒤집 으면 1001이됩니다. 1을 더하면 다시 1010이됩니다. 어떻게 작동하는지 알지 못합니다.

얼마 남았습니까? 8 + (-6)과 같습니다. 2의 보수로 1000 + 1010 = 10010

우리는 4 자리로 작업하기 때문에 MSB를 트림하고 0010을 얻습니다. 2는 8 - 6입니다.

-6 (1010)을 사용하고 다시 2의 보수를 적용하면 두 번째 보완 알고리즘을 다음과 같이 반전 (1010) + 1 = 0101 + 1 = 0110 = 6이됩니다. 음수는 절대 값을 나타냅니다.

이제 질문의 두 번째 부분 인 1110으로 이동할 수 있습니다. 양수인 세계에서 이것은 14입니다. 그러나 양수 및 음수 모두의 작업에서 MSB (대부분의 중요한 비트)이 1이면 숫자가 음수입니다. -6 예와 같이 2의 보수를 적용하면 절대 값이됩니다. 따라서 : 반전 (1110) + 1 = 0001 + 1 = 0010 = 2. 따라서 1110은 -2입니다.

나는이 질문에서 k는 자릿수임을 믿는다. k가 5이면 -2를 어떻게 나타낼까요?

5 개의 숫자로 표시된 2부터 시작하여 2의 보수 변환을 적용하십시오. 거기에

2는 00010. 두의 complent는 반전이다 (00010) + 1 = 11101 + 1 = 11110.

당신은 우리가 8 비트가 있다면 -2이 될 것이라고 결론을 내릴 수 11111110.

이 현상을 부호 확장이라고합니다. 음수가 k 비트로 표현 될 수 있다면, a) MSB는 1이 될 것이고, b) k 비트 이상을 사용하고자한다면, 원래의 MSB와 왼쪽의 모든 비트는 모두 1.

다시 말하지만, 그것을 증명하기위한 수학이 있습니다. 나는 그것에 익숙하지 않습니다.

그런데 내 웹 사이트를 볼 수 있습니다. 귀하의 질문이 ChordBits라는 제품에서 해결 한 문제를 정확하게 해결 한 것으로 나타났습니다. ChordBits는 비트를 켜거나 끌 수 있으며, 다른 옵션 중에서도 2의 보완을 적용하여 모양을 볼 수 있습니다 (셰어웨어 버전은 완전히 기능의). www.codechords.com

건배

+0

무한 지수 지수 합계를 적용하여 sum [i = 0..inf] (2^n)을 계산하면 -1이됩니다. 따라서 가장 중요한 비트가 부호가 무한 수의 비트로 확장되는 것으로 간주하면 컴퓨터의 2의 보수 형식은 2 진수의 수학적 의미와 일치합니다. – supercat

관련 문제