2014-11-21 5 views
2

부호 비트가있는 음수의 이진수가 있고 회색 코드를 얻기 위해 프로그램을 작성하려고합니다. 그러나, 나는 오직 양수에 대한 해답을 찾을 수 있습니다. 그래서 여기에 나는이 질문을하고있다. 감사합니다. .음수 이진수를 회색 코드로 변환하는 방법

+0

음수 코드를 어떻게 나타내시겠습니까? 서명되지 않은 번호를 처리하는 것은 적어도 뭔가를 제공합니다 (즉, 회색 코드로 변환 한 다음 원래 번호로 되돌릴 수 있음). – harold

답변

0

그레이 코드은 다음과 같은 방법을 사용하여 음수가 아닌 숫자 계산 될 수있다

int gray_encode(int n) { 
    return n^(n >> 1); 
} 

같은 방법 때문에 진수의 2의 보수 표현의 음수에 대해 작동하지 않습니다.

+0

그것은 음수에 대해 작동하지 않는다는 것을 증명하지 못합니다. – harold

+0

질문에 답하는 것을 증명합니까? – syntagma

+0

글쎄요, 전 2의 보완 거래는 큰 양수와 음수 사이에 차이가 없다는 것을 의미합니다. 그래서 무엇이든 증명할 수 있다면 * 가능합니다. – harold