0

다음 바이너리 뺄셈이 왜 결과를 제공하는지 이해하는 데 어려움이 있습니다. 나는 다른 대답을 계속하고있다. x가 0.00011001100110011001100 인 0.1-x를 계산하려고합니다. 대답은 0.000000000000000000000001100 [1100] ... (1100은 반복됩니다) 내가 그것을 할 때, 나는 처음부터 1100을 계속 간직하고있다.부분 바이너리 뺄셈

나는 올바르게하지 못하고 있습니까?

+0

무엇을 시도 했습니까? 당신의 대답은 정확히 무엇입니까? 왜 그 대답은 계속 반복되어야한다고 생각하니? –

+0

그것이 "있어야"하는 대답을 어떻게 알 수 있습니까? 그것은 내가 얻는 답에 가깝지 않다. –

+0

'답은해야한다'와 주어진 'x'를 합친 것. '0.1'을 얻나요? 당신의 제안 된 '대답'에 대해 무엇이라고 말합니까? – AakashM

답변

0

예상 답변이 잘못되었다고 생각합니다. 여기 내 해결책이있다. 나는 비트를 니블 (nyble)로 묶어서 읽을 수있게 만들 것이다.

0.1000 0000 0000 0000 0000 0000 <- added zero to the rightmost to fill in the nybble 
- 0.0001 1001 1001 1001 1001 1000 <- added zero to the rightmost to fill in the nybble 
_________________________________ 

0.0001 1001 1001 1001 1001 1000의 2의 보수를 얻습니다.

1.1110 0110 0110 0110 0110 0111 (1's complement) 
+ 0.0000 0000 0000 0000 0000 0001 
_________________________________ 
    1.1110 0110 0110 0110 0110 1000 (2's complement) 

0.1에 2의 보수를 추가하십시오.

0.1000 0000 0000 0000 0000 0000 
+ 1.1110 0110 0110 0110 0110 1000 
_________________________________ 
10.0110 0110 0110 0110 0110 1000 

오버플 1이므로 무시. 0.10.0001 1001 1001 1001 1001 1000보다 크기 때문에 최종 답이 양수임을 나타냅니다. 따라서 최종 답은 0.011001100110011001101000입니다.