Перевод целых чисел из десятичной системы счисления в любую другую



Пример 2. Перевести число 1310 из десятичной системы счисления в двоичную.

Для перевода чисел из десятичной системы счисления в любую другую необходимо делить десятичное число на основание новой системы счисления, сохраняя при этом остатки от каждого деления. Деление продолжается до тех пор, пока результат деления не станет меньше делителя. Число формируется из полученных остатков (рис. 1.3), записанных в обратном порядке (от последнего к первому).

Рис. 1.3. Перевод числа из десятичной системы счисления в двоичную

13/2 = 6 (остаток 1); так как частное 6 больше делителя 2, то продолжаем выполнять деление. 6/2 = 3 (остаток 0), так как частное 3 больше делителя 2, то продолжаем выполнять деление. 3/2 = 1 (остаток 1), так как частное 1 меньше делителя 2, то записываем полученное число. Результат записываем справа налево. Получаем 1310 = 11012.

Перевод целых чисел из двоичной системы счисления в восьмеричную (шестнадцатеричную) и обратно

Так как основания восьмеричной и шестнадцатеричной систем счисления являются степенями двойки, то перевод чисел из этих систем счисления в двоичную и наоборот основан на методах триад и тетрад.

При переводе из двоичной системы счисления в восьмеричную необходимо число разбить на триады по три цифры справа налево.

Пример 3. Перевести число 110112 в восьмеричную систему счисления.

1. Разбиваем число 110112 на триады: 11011 2.

2. При необходимости следует добавить слева нули, чтобы получилась длина строки, кратная трем: 011011 2.

3. Из табл. 3 выпишем для каждой триады соответствующую цифру в восьмеричной системе счисления. В результате получим 338.

При переводе из двоичной системы счисления в шестнадцатеричную необходимо двоичное число разбить на тетрады по четыре цифры справа налево.

Пример 4. Перевести число 110112 в шестнадцатеричную систему счисления.

1. Разбиваем число 110112 на тетрады: 11011 2.

2. При необходимости следует добавить слева нули, чтобы получилась длина строки, кратная 4: 00011011 2.

3. Из табл. 3 выписать для каждой тетрады соответствующую цифру в шестнадцатеричной системе счисления: 1B16.

При переводе из восьмеричной системы счисления в двоичную необходимо для каждой цифры числа из табл. 1.1 выписать соответствующую триаду (слева направо).

Пример 5. Перевести число 1478 в двоичную систему счисления.

Для цифры 1 запишем 001, для 4 – 100, для 7 – 111, получим 0011001112. Нули слева можно отбросить, получим окончательно 1478 = 1100111 2.

При переводе из шестнадцатеричной системы счисления в двоичную необходимо для каждой цифры числа из табл. 1 выписать соответствующую тетраду (слева направо).

Пример 6. Перевести число А1116 в двоичную систему счисления.

Для цифры А запишем 1010, для 1 – 0001. Соединяем тетрады, получим А1116=1010000100012.

При переводе восьмеричного числа в шестнадцатеричное (или обратно) необходимо перевести число из восьмеричной (шестнадцатеричной) системы счисления в двоичную, а затем в шестнадцатеричную (восьмеричную) систему счисления.

Представление целых чисел в памяти компьютера

Целые числа могут представляться в компьютере со знаком или без знака. Целые числа без знака обычно занимают в памяти компьютера один или два байта. В однобайтовом формате принимают значения от 000000002 до 111111112. В двухбайтовом формате – от 00000000000000002 до 11111111111111112. Например, число 7210 = 10010002 в однобайтовом формате будет храниться в памяти в следующем виде:

Номер разряда 7 6 5 4 3 2 1 0
Биты числа 0 1 0 0 1 0 0 0

Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа.

Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины числа – семь разрядов.

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

Положительные целые числа в прямом, обратном и дополнительном кодах изображаются одинаково – двоичными кодами с цифрой 0 в знаковом разряде. Например, число 1310 (в двоичной системе счисления 1101) будет представлено в следующем виде:

0 0 0 0 1 1 0 1

Знаковый разряд здесь содержит 0, поскольку кодируется положительное число.

þ В дальнейшем изложении будем представлять коды чисел как восьмиразрядные последовательности нулей и единиц, в которых знаковый разряд отделяется символом «запятая»: 0,0001101.

Отрицательные целые числа в прямом, обратном и дополнительном кодах имеют разное изображение.

Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа – двоичный код его абсолютной величины. Например, для числа -1310 прямой код числа будет иметь вид: 1,0001101.

Обратный код отрицательного числа получается из прямого кода заменой всех двоичных цифр числа на противоположные (1 на 0, 0 на 1). В знаковый разряд заносится единица. Так, для числа -1310 обратный код будет равен 1,1110010.

Дополнительный код отрицательного числа образуется из обратного кода прибавлением к младшему разряду единицы. Для числа -1310 дополнительный код равен 1,1110011.

Пример 7. Найти прямой, обратный и дополнительный коды в однобайтовом представлении для чисел 2510 и -2510.

Выполнив перевод чисел в двоичную систему счисления, получим: 2510 = 110012; -2510 = -110012. Запишем прямые коды чисел: 0,0011001 – для числа 25, 1,0011001 – для числа -25. Прямой код положительного числа 25 равен обратному и дополнительному кодам.

Для отрицательного числа -25 обратный код получается из прямого инверсией всех разрядов (кроме знакового). Дополнительный код получается из обратного кода прибавлением к двоичному числу единицы:

  2510 -2510
Прямой код 0,0011001 1,0011001
Обратный код 0,0011001 1,1100110
Дополнительный код 0,0011001 1,1100111

 

Пример 8. Найти прямой, обратный и дополнительный коды в однобайтовом представлении для числа -5610.

Выполнив перевод числа -56 в двоичную систему счисления, получим:
-5610 = -1110002.

Запишем прямой код числа. Всего в однобайтовом представлении 8 двоичных разрядов. Первый слева разряд – знаковый: 1 – для отрицательного числа, 0 – для положительного. Оставшиеся 7 разрядов занимает число в двоичном представлении. Если в числе меньше 7 разрядов, оставшиеся дополняются нулями слева. Таким образом, для числа -56 получаем прямой код в виде 1,0111000 (первая слева 1 соответствует знаку, затем следует 0, дополняющий двоичное шестиразрядное число до 7 разрядов, затем следует само двоичное число).

Обратный код отрицательного числа получается из прямого инверсией всех разрядов, за исключением знакового. Получаем: 1,1000111.

Дополнительный код отрицательного числа получается из обратного кода прибавлением к двоичному числу единицы (знаковый разряд в операции не участвует):

 1000111

+      1

_____________

 1001000

-5610
Прямой код 1,0111000
Обратный код 1,1000111
Дополнительный код 1,1001000

Ответ: дополнительный код числа -56 равен 1,1001000.

 


Дата добавления: 2019-09-13; просмотров: 372; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!