2014-11-21 4 views
2

У меня есть отрицательное двоичное число, которое имеет бит знака и хочет написать программу, чтобы получить ее серый код. Однако я могу найти решение только для положительного числа. Поэтому я задаю этот вопрос. Спасибо.как преобразовать отрицательный двоичный номер в его серый код

+0

Что вы хотите, чтобы отрицательные коды выглядели? Просто обработка ваших чисел без знака даст вам хотя бы что-то (то есть вы можете конвертировать в серый код, а затем обратно, и у вас будет исходный номер). – harold

ответ

0

Серый код может быть рассчитан только для неотрицательных чисел, используя следующий метод:

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

Того же метод не будет работать для отрицательных чисел из-за комплементом представления Его двоичных чисел.

+0

Это не доказывает, что это не сработает для отрицательных чисел. – harold

+0

Я могу доказать это, чтобы ответить на вопрос? – syntagma

+0

Ну, я имею в виду, что соглашение о дополнении всего двух означает, что между большими положительными числами и отрицательным числом нет разницы, поэтому, если вы доказали, что это возможно * – harold

 Смежные вопросы

  • Нет связанных вопросов^_^