2014-01-22 5 views
1

질문은 8 비트의 이진수 (-00101.110)의 2의 보수를 찾는 것입니다.분수가있는 이진수의 2의 보수

이렇게 분수 부분을 어떻게 처리해야하는지 이해할 수 없습니다. 나는 1의 보수가 11010.001이라고 생각한다. 11010.010은 2의 보수인가? 그리고 이것들은 -00101.110의 2의 보수에 대한 나의 최종 답으로 필요한 8 비트입니까?

답변

0

2의 보수 표기법에서 음수의 최상위 비트는 모두 1로 설정됩니다.이 숫자를 "2 진수 점"의 오른쪽에 2로 8 비트로 저장한다고 가정 해 봅시다.

정의, x + -x = 0에 의해, 그래서 우리는 쓸 수있다 : 등등

0.5 + -0.5 = 0.10 + 111111.10 = 0 // -0.5 = 111111.10 
0.25 + -0.25 = 0.01 + 111111.11 = 0 // -0.25 = 111111.11 
0.75 + -0.75 = 0.11 + 111111.01 = 0 // -0.75 = 111111.01 

하고 있습니다. 이런 8 비트를 사용

, 사용자가 저장할 수있는 최대 수이다

011111.11 = 31.75 

최소 정수이다

000000.01 = 0.25 

최소 음수

111111.11 = -0.25 

인 가장 작은 것 (즉, 가장 부정적인 것)은

입니다. 진수 시스템과 Source

100000.00 = -32 

우리는이 열 번호의 힘에 1,2,4 등이 될 부호 이진 숫자와 단위, 수십 수백 개의 열을 가진 데 사용할 수 있습니다. 예에서

2^0 (1), 2^1 (2), 2^2 (4). 

들어

최상위 비트 (MSB)가 마이너스가 조로는-보완. 3 비트 숫자의 경우 행에 이러한 값이 저장됩니다.

-4, 2, 1 
0 0 1 => 1 
1 0 0 => -4 
1 0 1 => -4 + 1 = -3 

따라서 고정 소수점 시스템이 보유한 비트의 값은 변경되지 않습니다.

-1 항상

-0.5 111.000가 0.5을 추가 할 것이다 : 케이스 110100.10에서 111.100

-32 + 16 + 4 + 0.5 = -11.5 같다. 당신이 한 일은 -12를 만든 다음 0.5를 빼는 대신 0.5를 더합니다.

당신이 실제로 원하는 것은 -32 + 16 + 2 + 1 + 0.5 = -12.5 = 110011.1

+0

당신은 참조하시기 바랍니다 수 http://cs.iupui.edu/~aharris/230/twosCompFloat.html –

+0

입니다 나는 아직도 그것을 너무 잘 이해하지 않는다. 저서에는 0.01 (밑 2)의 분수가 1.10 (기본 2)의 보수와 2의 보수 (기본 2)의 1.11을가집니다. 그래서 나는 내 문제 때문에 그 일을 그만 뒀다. – user1869703