Как расписать целое отрицательное число в двоичном коде?
Ответ вот на такой загадочный вопрос:
Представление отрицательных целых чисел - дополнительный код. я понял что если в первом разряде стоит 0 то число положительное а если 1 то отрицательное... а как посчитать?
Не понял, что конкретно ты хотел сделать?
Узнать, как двоичное представление отрицательного числа расписать, что ли?
Например, так.
Имеем десятичное число -2013, надо его записать в двоичном коде.
Переводим положительное число 2013 в двоичную систему, получаем 11111011101.
Дописываем слева нули, чтоб вышло 16 разрядов (если число двухбайтовое), имеем 0000011111011101 (прямой код).
Инвертируем все биты (то есть, 0 заменяем на 1, а 1 на 0), имеем 1111100000100010 (обратный код).
Прибавляем в двоичной системе 1 к обратному коду, имеем 1111100000100011. Это значение равно -2013.
Проверить можно стандартным калькулятором Windows:
Запускаешь Калькулятор (Программы - Стандартные - Калькулятор), в XP выбираешь в меню программы Вид - Инженерный, в "семерке", по-моему, Вид - Программист, набираешь выражение, ответом для которого будет нужное отрицательное число, например, 0-2013 = -2013, переключаешь систему счисления на двоичную (Bin), а ёмкость числа - на 2 байта, видишь 1111100000100011.
Или у нас сразу есть отрицательное двоичное число, скажем, 1111111111101111 (самый левый бит - единица, значит, отрицательное)... левая "1" обозначает знак "-", отбрасываем её, а от оставшегося двоичного числа отнимаем 1, получаем 111111111101110, заменяем все нули на 1, а единицы на нули, получаем 000000000010001, а это есть десятичное 17. Значит, код обозначал -17.
19.01.2013, 10:53 [68114 просмотров]