Top.Mail.Ru
Ответы

Как перевести отрицательное число в двоичную систему счисления?

Пожалуйста, объясните как перевести и есть ли какие-нибудь договоренности (мне сказали, что нужно обязательно добавлять ведущие нули так, чтобы число имело 8 цифр)?
Сразу говорю, я не в 11, можно простое объяснение, пожалуйста?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
6лет

У отрицательного числа в двоичном представлении, в самом старшем разряде стоит единичка - куда уж проще...

Удаленный ответ Ответ удалён
Аватар пользователя
Искусственный Интеллект
6лет

Отрицательное число переводится в двоичную форму точно так-же как и положительное ( и указывается знак )

Другой вопрос как хранить отрицательное числов ячейках памяти

Можно записать двоичную строку с ведущим знаком
Можно использовать способы хранения с выделенным знаковым битом

Аватар пользователя
Мыслитель
6лет

У знаковых чисел в старшем бите (зависит от разрядов в числе) находится знак числа. 1 - минусовое число, 0 - плюсовое. Для того что бы перевети число в минусовое нужно его инвертировать и сложить с единицей. Пример:
В одном байте (то есть 8 разрядов) число 1 будет представлено как 00000001
для того что бы его представить как минус один то:
1) инвертируем биты 00000001 = 11111110
2)добавляем единицу 11111110 + 00000001 = 11111111
Получили -1

Проверка:

11111111 + 00000001 = 1(окажется в флаге переполнения) и 00000000.
То есть -1 + 1 = 0, ну если не считать флаг переполнения.

На примере показал как получить отрицательное число и если посмотреть проверку можно догадаться почему так решили сделать.

Аватар пользователя
Мудрец
6лет

прямой код:
-5
1101
дополнительный код:
1шаг = 5 переводим в двоичное исчисление
0101
2шаг = инвертируем биты (1010) и добавляем единицу (1011)