Для представления целого отрицательного числа в компьютере используется дополнительный код. Для получения дополнительного кода используется следующее правило:
· число без знака переводится в двоичную систему;
· результат дополняется нулями слева в пределах выбранного формата;
· полученное число инвертируется – переводится в обратный код (нули заменяются единицами, а единицы – нулями);
· к полученному коду прибавляется 1.
Пример. Получим внутреннее представление в памяти компьютера числа –4510. Используем целочисленный формат со знаком. Для хранения одного числа используется 1 байт.
1) Переводим положительное число 4510 в двоичную систему счисления:
4510=1011012
2) Дополняем полученный результат двумя нулями слева (т.к. 1 байт – это 8 бит): 00101101
3) Получаем обратный код (инвертируем нули и единицы): 11010010
4) К полученному коду прибавляем 1: 11010010+1= 11010011
Ответ: 11010011
Обратите внимание, что последний разряд слева является знаковым, в отрицательном числе он равен 1.
Восьмеричная и шестнадцатиричная системы счисления
Кроме двоичной и десятичной, существуют и другие системы счисления. В информатике нашли применение восьмеричная и шестнадцатиричная системы счисления, которые позволяют сделать запись двоичного кода более компактной.
Для перевода чисел из двоичной системы в восьмеричную полезно знать следующую таблицу:
8-я система | ||||||||
2-я система |
Пример: перевести двоичное число 10001011 в восьмеричную систему счисления
Решение: разбиваем наше число на триады, начиная справа: 10001011 à 010 001 011 (впереди первой триады дописан 0). По таблице получаем восьмеричный код: 213
Ответ: 100010112= 2138
Для перевода чисел из двоичной системы в 16-ричную систему используется следующая таблица:
16-я система | ||||||||
2-я система | ||||||||
16-я система | A | B | C | D | E | F | ||
2-я система |
Пример: перевести двоичное число 101001011 в 16-ричную систему счисления
Решение: разбиваем наше число на тетрады (по 4 цифры), начиная справа:
101001011 à 0001 0100 1011 (впереди первой четверки дописаны три 0). По таблице получаем 16-ричный код: 14B
Ответ: 1010010112= 14B8
Для перевода чисел из одной системы счисления в другую можно воспользоваться программой Excel или программой Калькулятор из стандартного пакета программ.
Ход работы
1) Инструктаж по технике безопасности.
2) Получить задание на перевод чисел из одной системы счисления в другую.
3) Выполнить задание по переводу чисел из одной системы счисления в другую, пользуясь инструкцией и применяя знания, полученные вами на теоретических занятиях. Полученные результаты запишите в свой отчет.
4) Открыть программу Excel и выполнить в ней перевод чисел из одной системы счисления в другую в соответствии с заданием. Функции перевода чисел из одной системы счисления в другую в программе Excel находятся в категории Инженерные и носят интуитивно понятные названия. Например: ДВ.В.ВОСЬМ – перевод числа из двоичной системы в восьмеричную; ДЕС.В.ДВ – перевод числа из десятичной системы в двоичную; ШЕСТ.В.ДЕС – перевод числа из шестнадцатиричной системы в десятичную и т.д.
5) Запишите полученные результаты в отчёт и сравните их с вашим решением. Если ответы не совпадают, подумайте, где вы допустили ошибку при самостоятельном решении.
6) Запустите программу Калькулятор: Пуск à Все программы à Стандартные à Калькулятор.
7) Войдите в режим программиста: Вид — Программист
8) Пользуясь переключателями Hex (16-ричная), Dec (десятичная), Oct (8-ричная), Bin (двоичная) также выполните перевод чисел из одной системы счисления в другую. Сравните полученные результаты.
9) Обратите внимания, что под основным окошком, где высвечивается число в выбранной системе счисления, расположено другое окошко, в котором показано представление этого числа в памяти компьютера. Число байт для представления числа также можно выбрать: 1 байт; 2 байта; 4 байта или 8 байт.
Контрольные вопросы
1) Как представляются числа в памяти компьютера?
2) Какие существуют форматы представления чисел в компьютере?
3) Чем отличается формат представления целого числа со знаком от формата без знака?
4) Чему равен старший разряд в представлении числа со знаком, если число положительное? (Если число отрицательное?)
5) Поясните общий принцип перевода чисел из двоичной системы счисления в десятичную?
6) Поясните общий принцип перевода чисел из десятичной системы счисления в двоичную?
7) Какие системы счисления вы знаете?
8) В чём особенности 8-ричной и 16-ричной систем счисления?
9) Приведите примеры функций Excel для перевода чисел из одной системы счисления в другую.
10) Каким образом можно перевести числа из одной системы счисления в другую, используя программу Калькулятор из стандартного набора программ ОС Windows?