Личный кабинет

Арифметические основы информатики


Математические основы информатики являются фундаментом информатики. В статье рассматривается теория и практика решения задач по теме системы счисления. Статья предназначена для учителей и учащихся, дополняет материалы учебников по информатике по заданной теме.

 

 

АРИФМЕТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ

 

 

ЗНАНИЯ И УМЕНИЯ

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

 

  1. ОСНОВЫ ТЕОРИИ

Арифметика компьютера  - это методы представления и обработки чисел. Основой любой арифметики является система счисления. Система счисления – это метод записи чисел с помощью набора специальных символов, которые назваются цифрами. При этом множество цифр называется алфавитом, а количество цифр – основанием системы счисления.

Очевидно, что для человека единственной привычной системой является система с основанием 10 - десятичная.  Алфавит этой системы включает 10 цифровых символов, которые принято называть арабскими цифрами. В этой системе мы привыкли записывать числа и выполнять над ними различные арифметические действия. Роль каждой цифры в записи числа зависит от ее места в данном числе – от ее позиции. Например, в числах 18 и 81 единица имеет совершенно разный смысл. В первом числе это количество десятков, а во втором – количество единиц. Такая привычная система записи чисел называется позиционной системой. Римские числа таким свойством не обладают – цифра единицы может оставаться единицей и в левой, и в правой части числа, например: IX и XI, IV и VI.

Подумаем хорошо, что такое запись числа в системе с основанием 10? Для примера можно взять число 254. В этом числе 2 сотни, 5 десятков и 4 единицы. Другими словами, можно записать этот факт следующим образом:

254 = 2 х 100 + 5 х 10 + 4

Если мы учтем, что нулевая степень любого числа равна единице, а 10 и 100 – это первая и вторая степени десятки, то можно переписать все элементы суммы в абсолютно единообразной форме:

254 = 2 х 102 + 5 х 101 + 4 х 100

Если число не целое, а дробное, например, 254,5, то принцип образования числа нисколько не меняется. Просто добавится отрицательная степень: 0,5=1/2=10 в минус первой степени.

254,5 = 2 х 102 + 5 х 101 + 4 х 100 + 5 х 10-1

Теперь, когда мы вспомнили, что такое число, подумаем, почему число 10 играет такую особую роль? Очевидно, что это просто историческая и биологическая случайность. Скорее всего единственная причина такого положения – это количество пальцев на руках человека. Основанием системы счисления может быть любое натуральное число больше 1. Единица не может служить основанием позиционной системы счисления, потому что степени этого числа не изменяются. Запись любого числа в такой системе – это просто последовательность из единиц, например 11111 (это число пять).

Особая роль десятки была закончена с наступлением эры вычислительной техники. Для технического устройства более простой является система счисления с минимальным количеством цифр - двоичная. Алфавит компьютера включает только две цифры, которые обозначают привычными знаками: 0 и 1. При этом схема записи любого числа сохраняется – просто роль “десятки” выполняет число 2. Обычно мы считаем десятками. Мы уже говорили, что число 254 – это 4 единицы, 5 десятков, 2 сотни. Двоичный счет – это счет двойками. Например, 0 единиц, 1 двойка, 1 четверка (110). Обратите внимание – в системе с основанием 2 только две цифры, поэтому в двоичном числе на любом месте может быть либо цифра 0, либо цифра 1.

Можно ли записать с помощью степеней двойки любое число, например, десятичное число 13,25? Конечно, можно. Мы приведем только результат для иллюстрации – алгоритмы решения задач оставим для практической части.

13,25 = 1 х 8 + 1 х 4 + 0 х 2 + 1 х 1 + 0 х 1/2 + 1 х 1/4

Очевидно, что числа, на которые мы умножаем 0 и 1, это просто различные степени двойки. Запишем их подробно.

13,25 = 1 х 23 + 1 х 22 + 0 х 21 + 1 х 20 + 0 х 2-1 + 1 х 2-2

Если оставить в правой части только множители при степенях, то получим цифровую запись двоичного числа:

1101,01

Это и есть запись нашего числа, но в системе с основанием два! Мы видим, что запись чисел имеет определенную аналогию с иностранными языками. Алфавиты и слова в разных языках пишутся по-разному, но при этом обозначают одни предметы и понятия. Точно так же одно число имеет разный вид в разных цифровых системах. Можно использовать для записи чисел основания 3, 4, 5 и т.д. Одни системы находят широкое применение в компьютерных технологиях, другие интересны только в рамках “чистой” арифметической теории.

При работе с разными формами записи чисел очень важно понимать, что цифровые знаки имеют условный характер. Мы просто привыкли использовать арабские цифры. Если бы вместо знаков 0,1,2 мы использовали знаки ,D,Ä, то в наших арифметических задачах можно было бы встретить числа примерно такого вида, как ÄDÄÄ. Мы писали бы такие числа, даже не думая об их “странной” форме, – она была бы для нас самой обыкновенной! То, о чем мы сейчас сказали, реально проявляется в системах счисления с основанием больше 10. Ведь в таких системах и количество цифровых знаков больше 10. Значит, кроме цифр от 0 до 9, нужно как-то обозначать цифры после 9. Обычно для таких целей используют буквы латинского алфавита – цифры после 9 могут иметь обозначения: A, B, C, D, E, F, G, H и т.д. В системе с основанием 16 после цифры 9 следует добавить в алфавит еще 6 цифр. Эти цифры обозначают буквами латинского алфавита A, B, C, D, E, F. Очевидно, что десятичными эквивалентами этих цифр являются числа 10,11,12,13,14,15. Иначе говоря, десятичное число 10 в 16-ричной системе обозначается одной шестнадцатиричной цифрой А, число 11 – это цифра В, и т.д.

Несколько замечаний об арифметических операциях над числами в системах счисления с недесятичным основанием. Общие правила сложения, вычитания, умножения и деления абсолютно одинаковы в любой системе позиционного типа. Меняются только цифры, а не методы выполнения операций. Таким образом, главное условие для хорошей подготовки – это хорошо знать обычную арифметику. Только один простой пример на эту тему. Сложим два числа в системе с основанием 4.

12(4) + 23(4) = 101(4)

Полученный результат выглядит непривычно. Но если подумать, то иначе и быть не может. Два плюс три - это пять. Но пять в 4-ричной системе – это число 11 (1 четверка плюс 1 единица). Что надо делать, если при сложении двух разрядов получено число 11? Правильно: один пишем, один в уме (перенос в следующий разряд). Идем дальше. Один плюс два - это три. И еще единица переноса. Мы получаем четыре.

Но в системе с основанием 4 четверка пишется как 10 (1 четверка и 0 единиц). Значит в старших разрядах осталось записать 10. В итоге получилось 4-ричное число 101.

Мы видим, что ни одно из правил сложения не было нарушено. Сохраняется порядок сложения справа-налево, сохраняется правило образования переноса. Точно так же выполняются и все остальные арифметические операции.

Проверим верность полученного результата. Число 12 в 4-ричной системе счисления – это 2 единицы и 1 четверка. Число 23 – это 3 единицы и 2 четверки. Другими словами, мы сложили десятичные числа 6 и 11. Теперь посмотрим, что мы получили. Число 101 в 4-ричной системе – это 1 единица, 0 четверок и 1 раз шестнадцать (4 в квадрате). Следовательно, в десятичной системе счисления наш пример имеет вид:

6(10) + 11(10) = 17(10)

Еще раз обратим внимание на главное. И в первом, и во втором случае мы сложили одни и те же числа и получили один и тот же результат! Только формы записи чисел были различны – 4-ричная и десятичная. Для любого фантастического существа с 4 пальцами на руках первый пример был бы намного понятнее, чем второй.

Первая и главная цель этой части курса – научиться записывать числа и вычислять числовые выражения в системах счисления с произвольным основанием.

Другая задача - это машинные форматы представления чисел. Формат числа – это метод представления числа в технических устройствах компьютера. В отличие от основ арифметики здесь могут помочь только точные технические знания. На вступительных экзаменах обычно требуется знать два основных стандарта для компьютеров с архитектурой x86: формат целого числа со знаком и формат числа с плавающей точкой (запятой). При решении задач мы рассмотрим особенности машинных представлений в полной мере. Здесь для справки укажем только наиболее важные параметры числовых форматов компьютера.

 

  1. Формат числа с фиксированной запятой, 16 бит (целое число со знаком)

Знак

1bit

0

Цифровые разряды числа, 15 bit

 

000000000011010

 

  1. Формат числа с плавающей запятой, 32 бит (действительное число)

Знак

1bit

0

Характеристика,8 bit

 

10000010

Мантисса числа, 23 bit (целый бит не хранится)

 

10001000000000000000000

 

  1. Границы представления целых чисел (диапазоны)

Разрядность (бит)

Минимальное значение

Максимальное значение

16

-32 768

+32 767

32

-2 147 483 648

+2 147 483 647

 

  1. Смещения порядка для чисел с плавающей запятой

Разрядность числа, бит

Разрядность порядка, бит

Смещение порядка

10 c/c

16 c/c

32

8

127

7F

64

11

1023

3FF

80

15

16383

3FFF


  1. ПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ

 

ЗАДАЧА 1.1.

Дано действительное двоичное число: +101,01(2). Записать число в десятичной системе счисления.

РЕШЕНИЕ

Любое число – это сумма его цифр, умноженных на соответствующие степени основания системы счисления. В алгебре такие суммы называют полиномами или многочленами. Вычислим такую сумму при основании 2.

101,01(2) = 1 х 22 + 0 х 21 + 1 х 20 + 0 х 2-1 + 1 х 2-2 =

1 х 4 + 0 х 2 + 1 х 1 + 0 х 1/2 + 1 х 1/4 =

4 + 0 + 1 + 0 + 1/4

5 + 1/4 = 5,25(10)

 

ЗАДАЧА 1.2.

Дано действительное шестнадцатиричное число: +1С2,0А(16). Записать число в десятичной системе счисления.

РЕШЕНИЕ

Особенность шестнадцатиричной системы счисления заключается в том, что для представления цифр используются шестнадцать символов: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. При выполнении вычислений с цифрами от A до F нужно использовать десятичные эквиваленты этих цифр: 10,11,12,13,14,15.

1C2,0A(16) = 1 х 162 + С х 161 + 2 х 160 + 0 х 16-1 + А х 16-2 =

1 х 256 + 12 х 16 + 2 х 1 + 0 х 1/16 + 10 х 1/256 =

256 + 192 + 2 + 0 + 10/256 =

450 + 5/128 = 450,0390625(10)

 

ЗАДАЧА 1.3.

Определить, существуют ли системы счисления с основанием P и Q, в которых выполняется неравенство 12 (P) > 21 (Q).

РЕШЕНИЕ

1) Запишем соответствующие числа в форме многочленов 1-ой степени от P и Q.

Любое двузначное число вида XY в системе счисления с основанием Z может быть записано в форме XZ+Y. Например, десятичное число 38 – это 3 х 10 + 8.

Следовательно, для данных чисел получим неравенство:

P + 2 > 2Q + 1

При этом основания систем счисления не могут быть меньше, чем 3 – в двоичной системе нет цифры 2.

Таким образом, имеем еще два ограничения:

P > 2; Q > 2

2) Теперь нужно найти решения для системы неравенств.

Преобразуем неравенство 1 к более простому виду.

Получим:

P > 2Q – 1

P > 2

Q > 2

Решения для полученной системы очевидны.

  1. При Q = 3, P > 5: 6,7,8, …
  2. При Q = 4, P > 7: 8,9,10, …

Ответ: Да, существуют. Пример. P = 6, Q = 3.

ЗАДАЧА 1.4.

Дано целое десятичное число: +20(10). Записать число в двоичной системе счисления (в системе с основанием 2).

РЕШЕНИЕ

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

1)  20 : 2 = 10           остаток от деления = 0

2)  10 : 2 = 5            остаток от деления = 0

3)  5 : 2 = 2               остаток от деления = 1

4)  2 : 2 = 1               остаток от деления = 0

5)  1 : 2 = 0               остаток от деления = 1

Ответ: 10100(2)

 

ЗАДАЧА 1.5.

Дано целое десятичное число: +35(10). Записать число в троичной системе счисления (в системе с основанием 3).

РЕШЕНИЕ

Метод решения задачи тот же, что и в задании №1.4. Но в качестве делителя используется число 3.

1)  35 : 3 = 11           остаток от деления = 2

2)  11 : 3 = 3            остаток от деления = 2

3)  3 : 3 = 1               остаток от деления = 0

4)  1 : 3 = 0               остаток от деления = 1

Ответ: 1022(3)

 

ЗАДАЧА 1.6.

Дано действительное десятичное число: +20,375(10). Записать число в двоичной системе счисления (в системе с основанием 2).

РЕШЕНИЕ

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

Целая часть числа найдена в задаче 1.4.(см.):

20(10) = 10100(2)

Находим дробную часть числа.

1) 0,375 x 2 = 0,75   целая часть = 0

2) 0,75 x 2 = 1,5       целая часть = 1

3) 0,5 x 2 = 1,0         целая  часть = 1

Ответ: 10100,011(2)

 

ЗАДАЧА 1.7.

Дано действительное десятичное число: +44,2890625(10). Записать число в шестнадцатиричной системе счисления.

РЕШЕНИЕ

Находим целую часть числа.

1)  44 : 16 = 2,                     остаток от деления = 12 (C)

2)  2 : 16 = 0,                       остаток от деления = 2

Целая часть = 2С(16)

Находим дробную часть числа.

1) 0,2890625 x 16 = 4,625  целая часть = 4

2) 0,625 х 16 = 10,0            целая часть = 10 (А)

Дробная часть числа = 0,4А(16)

Ответ: 2С,4А(16)

 

ЗАДАЧА 1.8.

Дано действительное десятичное число: +1,3(10). Записать число в восьмиричной системе счисления.

РЕШЕНИЕ

Целая часть числа определяется сразу:

1(10) = 1(8)

Находим дробную часть числа.

1) 0,3 x 8 = 2,4         целая часть = 2

2) 0,4 x 8 = 3,2         целая часть = 3

3) 0,2 x 8 = 1,6         целая  часть = 1

4) 0,6 x 8 = 4,8         целая  часть = 4

5) 0,8 x 8 = 6,4         целая  часть = 6

6) 0,4 x 8 = 3,2         целая  часть = 3

7) 0,2 x 8 = 1,6         целая  часть = 1

Образовался период дроби: (1463). Такая ситуация возникает часто: не каждая дробь может быть точно представлена в системе счисления с другим основанием.

Ответ: 1,23(1463)(8)

 

ЗАДАЧА 1.9.

Дана периодическая десятичная дробь: +2,35(7)(10). Записать число в шестнадцатиричной системе счисления в форме обыкновенной дроби.

РЕШЕНИЕ

1) Итак, мы имеем периодическую десятичную дробь вида: +2,35777777…

Очевидно, что для точного преобразования такого числа необходимо иметь число в форме обыкновенной (простой) дроби.

Выполним преобразование числа в форму простой дроби. Это можно сделать с помощью простых алгебраических преобразований. Основная проблема – избавиться от бесконечной периодической части.

Пусть: х = 2,35777777…

Умножая х на 100 и 1000, получим:

100х = 235,777777…

1000х = 2357,777777…

Вычтем меньшее число из большего.

1000х – 100х = 2357 – 235

Одинаковые разряды при вычитании дали нулевые значения.

Отсюда легко найти х:

х (1000 - 100) = 2357 - 235

х = 2122 / 900

2122 / 900 = 2  322/900

После сокращения получим обыкновенную дробь в десятичной системе счисления.

2) Теперь можно преобразовать числитель и знаменатель дроби в 16-ричную систему счисления.

161 : 16 = 10 (1)                

10 : 16 = 0 (10=А)

Числитель дроби = А1

450 : 16 = 28 (2)

28 : 16 = 1 (12=С)

1 : 16 = 0 (1)

Знаменатель дроби = 1С2

Дробная часть получена. Целая часть в 16-ричной системе счисления будет выглядеть так же (2(16)=2(10)).

 

ЗАДАЧА 1.10.

Дано действительное шестнадцатиричное число: +1С,04(16). Записать число в двоичной системе счисления (в системе с основанием 2).

РЕШЕНИЕ

Переходы между системами с основанием 2 и 16 можно осуществить на основе простой подстановки. Принцип подстановки очень прост. Вместо каждой цифры в 16-ричном числе надо подставить 4 двоичных цифры, которые образуют значение разряда в двоичной системе счисления.

Например, вместо цифры С надо подставить 1100 (это запись С в двоичной системе: С(16)=12(10)=1100(2)). При этом количество двоичных цифр обязательно должно быть равно 4: в случае необходимости следует добавлять недостающие нули слева. Такое количество двоичных разрядов связано с тем, что 16 – это именно четвертая степень двойки.

В системах с основаниями 4 и 8 осуществляется то же правило. Только вместо 4 разрядов нужно подставлять 2 двоичных цифры вместо одной 4-ричной, 3 цифры – вместо одной 8-ричной.

Делаем подстановки.

1 = 0001, С = 1100, 0 = 0000, 4 = 0100

1С,04(16) = 0001 1100, 0000 0100(2) = 11100,000001(2)

 

ЗАДАЧА 1.11.

Дано действительное двоичное число: +11010,01111(2). Записать число в 4-ричной системе счисления (в системе с основанием 4).

РЕШЕНИЕ

Это обратная задача. Нужно от основания 2 перейти к основанию 4. Четыре – это вторая степень двойки. Поэтому каждую пару цифр в двоичном числе можно заменить одной цифрой в 4-ричной системе счисления.

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

01  10  10 , 01  11  10

Делаем подстановки.

00 = 0, 01 = 1, 10 = 2, 11 = 3

11010,01111(2) = 122,132(4)

 

  1. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ НАД ЧИСЛАМИ

 

ЗАДАЧА 2.1.

Даны целые двоичные числа: А = 110011101100(2) , В = 100110111110(2). Вычислить сумму чисел в двоичной системе счисления (A+B).

РЕШЕНИЕ

Мы уже говорили, что законы арифметики универсальны и не зависят от формы записи числа. Это значит, что умение складывать и вычитать десятичные числа автоматически гарантирует умение делать точно такие же вещи над двоичными и троичными. К сожалению, на практике попытка выполнять арифметические действия в “чужих” системах счисления приводит к различным трудностям.

Этот феномен может носить чисто психологический характер, но чаще всего означает другое: человек делает некоторые вещи механически и не задумывается, почему он делает их именно так. Самый простой пример – когда при сложении возникает перенос в старший разряд, и что мы должны записать в разряд суммы?

Небольшой пример с двоичными числами.

Сложим два числа в двоичной системе счисления: 1110+1100.

При этом будем выполнять действия по тем же правилам, что и в “обычной” арифметике.

Сначала сложим младшие разряды: 0 + 0 = 0 (это очевидно!)

Сложим следующие разряды: 1+0=1 (тоже все ясно)

Следующие разряды дают: 1+1=10

10 – это запись числа 2 в двоичной системе счисления (1 двойка плюс 0 единиц). Наверное, не нужно объяснять, что именно следует записать в разряде суммы: если при сложении получилось число 10, значит мы пишем 0 и переносим одну единицу в следующий разряд. Если Вы поступаете иначе, то придется признать, что Вы просто не умеете считать.

И, наконец, последние разряды: 1+1+1(перенос)=11

Три единицы всегда дают число три, т.е. 11 в форме двоичного числа.

Теперь можно собрать все полученные разряды суммы: 11010. Именно это число мы должны получить – в десятичной системе счисления наш пример имеет следующий вид: 14+12=26.

Теперь можно решить исходную задачу. Если внимательно следить за переносами, то Вы получите результат без особого труда.

Найдем С = А + В.

А:  110011101100

В:  100110111110

----------------

С: 1011010101010

ЗАДАЧА 2.2.

Даны целые шестнадцатиричные числа: А = 1А4С(16), В = 8Е9С(16). Вычислить сумму чисел в шестнадцатиричной системе счисления (A+B). Результат сложения записать в двоичной системе счисления.

РЕШЕНИЕ

Правила сложения остаются прежними.

Сначала нужно определить результат сложения цифровых разрядов С и С в 16-ричной системе счисления. Шестнадцатиричная цифра С это десятичное число 12. Следовательно, в десятичной форме эта сумма равна 24. Число 24 в 16-ричной системе счисления имеет вид 18 = 1 х 16 + 8. Таким образом, мы получаем, что в 16-ричной системе счисления С+С=18.

Если мы получили при сложении 18, то цифру 8 надо записать в разряде суммы, а 1 переноса перенести в старший разряд. Сравните с решением задачи 2.1. – в общих правилах сложения разрядов нет никакой разницы.

А = 1А4С

В = 8Е9С

--------

С = А8Е8

После подстановки двоичных групп получим окончательный результат:

1010 1000 1110 1000(2)

 

ЗАДАЧА 2.3.

Даны целые шестнадцатиричные числа: X = 1А4С(16), Y = 8Е9С(16). Вычислить значение выражения в шестнадцатиричной системе счисления. Результат вычислений записать в 4-ричной и десятичной системах счисления. Все числа в выражении заданы в шестнадцатиричной системе счисления.

РЕШЕНИЕ

Прежде всего, небольшое пояснение. В этой задаче даны не очень большие числа. В такой ситуации у многих учеников может появиться соблазн выполнить арифметические действия “хитрым” образом: перевести все числа в десятичную систему счисления, выполнить вычисления и преобразовать результат к нужному основанию. Мы не советуем поступать подобным образом. Составители экзаменационных заданий прекрасно понимают такую возможность и могут предложить числа большой разрядности. Лучший и надежный способ борьбы с такими задачами – освоить арифметические действия с недесятичными числами. Поскольку законы арифметики одинаковы в любых позиционных системах, сделать это не так трудно, как кажется.

Покажем это на примере шестнадцатиричных вычислений.

1) Сначала умножаем  1A4C на 3

1A4C

3

----

4EE4

Некоторые пояснения. Конечно, правила умножения в любой системе счисления тоже ничем не отличаются от обычных! Умножаем младшие разряды множителей: 3 на С. В десятичной системе это выглядит так: 3*12=36. Десятичное число 36 в шестнадцатиричной системе счисления – это 24 (2*16+4). Цифру 4 пишем, 2 запоминаем для переноса. Дальше: умножаем 3 на 4, в шестнадцатиричной форме получаем С. К полученному значению надо прибавить 2. C+2=E, это следующий разряд в произведении. Остальные действия приведем в сокращенной форме. 3*А=1Е, Е пишем, 1 переносим. 3*1=3, 3+1=4.

2) Получим разность 4ЕЕ4-8Е9С. Очевидно, что вычитаемое больше, поэтому разность будет отрицательна.

8Е9С

4ЕЕ4

----

3FB8

Процесс вычитания тоже не содержит ничего нового. Отнимаем 4 из С – получаем 8 (в десятичной форме: 12-4). Из 9 вычесть Е нельзя, поэтому занимаем единицу из старшего разряда. Вычисляем: 19-Е=В (десятичный эквивалент операции: 25-14=11). Мы имеем заем из старшего разряда, поэтому следующий шаг: D-E. Приходится занимать единицу еще раз. Считаем: 1D-E=F (десятичный эквивалент: 29-14=15). Наконец, в последнем разряде имеем: 7-4=3. Операция закончена.

3) Теперь выполним операцию деления. Делить числа можно непосредственно - с помощью подбора множителей и шестнадцатиричного вычитания. Но иногда переход к двоичному основанию может упростить эти операции. Мы покажем именно такой вариант деления.

3FB8(16) = 0011 1111 1011 1000(2)

7F7(16) = 0111 1111 0111(2)

11111110111000|11111110111

11111110111    1000

         0

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

-1000(2) = -20(4) = -8(10)

 

ЗАДАЧА 2.4.

Найти сумму целых чисел от 10(4) до 33(4). Границы интервала включаются и заданы в 4-ричной системе счисления. Результат записать в 16-ричной системе счисления.

РЕШЕНИЕ

Эта задача решается очень просто – складывать все числа в заданном интервале не нужно. Речь идет о вычислении суммы арифметической прогрессии.

Метод вычисления суммы прогрессии известен.

Sn = ( A1 + An ) N / 2

Здесь N – это количество чисел в прогрессии, Sn – это сумма, A1 и An – первый и последний элементы.

Границы интервала малы, поэтому значение суммы можно вычислить и в 10-тичной, и в 4-ричной системе счисления.

1) Десятичные вычисления.

Определим сумму арифметической прогрессии.

A1 = 1 × 4 + 0 = 4 + 0 = 4

An = 3 × 4 + 3 = 12 + 3 = 15

n = An+1-A1

n = 15+1-4 = 12

Sn = (4+15)×12/2 = 19×6 = 114

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

114 : 16 = 7 (2)

7 : 16 = 0 (7)

114(10) = 72(16)

2) Четверичные вычисления.

Определим сумму арифметической прогрессии.

n = An+1-A1

n = 33+1-10 = 100-10 = 30

Sn = (10+33) × 30/2 = 103 × 12 = 103 × (10+2) = 1030 + 212 = 1302

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

1302(4) = 0111 0010(2) = 72(16)

ЗАДАЧА 2.5.

Дана периодическая восьмиричная дробь: +2,35(6)(8). Записать число в десятичной системе счисления в форме обыкновенной дроби.

РЕШЕНИЕ

1) Итак, мы имеем периодическую восьмиричную дробь вида: +2,35666666…

Очевидно, что для точного преобразования такого числа необходимо иметь число в форме обыкновенной (простой) дроби.

Мы уже имели похожую ситуацию в задаче 1.9. Здесь сложность заключается только том, что соответствующие преобразования нужно выполнить над 8-ричными числами.

Преобразуем число в обыкновенную дробь.

Пусть: х = 2,35666666…

Тогда,

100х = 235,666666…

1000х = 2356,666666…

При вычитании все шестерки дают нули в дробной части разности.

1000х – 100х = 2356 – 235 = 2121(8)

Найдем х из полученного уравнения. Для  этого вынесем х за скобки и выполним арифметические действия в 8-ричной системе счисления.

х (1000-100) = 2121

х = 2121 / (1000-100) = 2121 / 700

Мы получили обыкновенную дробь в 8-ричной системе счисления:

2121 / 700(8)

2) Теперь можно преобразовать числитель и знаменатель дроби в десятичную систему счисления.

2121(8) = 2 × 512 + 1 × 64 + 2 × 8 + 1 = 1105(10)

700(8) = 7 × 64 = 448(10)

2121 / 700(8) = 1105 / 448(10)

 

ЗАДАЧА 2.6.

Для обозначения цифр числа используются буквы. При этом одинаковые цифры обозначены одной буквой. Даны натуральные числа  XXX и YXZ в восьмиричной системе счисления. Сумма чисел в восьмиричной системе счисления равна 7Z0. Найти все варианты для X,Y,Z.

РЕШЕНИЕ

1) Сумма цифр в младшем разряде дает число восемь в восьмиричной системе счисления. Следовательно:

X+Z=10(8).

2) Составим таблицу для допустимых вариантов X и Z. При этом очевидно, что варианты X=0 и (X=4,Z=4) можно исключить. Первый вариант отбрасываем, потому что первое число по определению больше нуля (XXX). Второй вариант – потому что X и Z могут обозначать только разные цифры.

X

Z

Выражение

Оценка

1

7

111+Y17 = 770

-

2

6

222+Y26 = 760

-

3

5

333+Y35 =750

-

5

3

555+Y53 = 730

+

6

2

666+Y62 = 720

-

7

1

777+Y71 =710

-

3) Из всех вариантов для цифр X и Z найден только один, при котором в младших разрядах суммы образуется нужная пара цифровых значений: 30. При сложении 5 и 3 получаем восьмиричную восьмерку (10), нуль пишем и переносим единицу в старший разряд. В следующей позиции получаем: 5+5+1. В данной системе счисления это 13 – нужная тройка получена! Следовательно: X=5, Z=3.

4) Теперь осталось вычислить цифру Y.

Имеем в старшей позиции числа:

5 + Y + 1 = 7

Y = 7 – 5 – 1

Даже в восьмиричной системе нужные действия выполнить совсем просто – для Y получаем результат Y=1.

Ответ: 555(8) + 153(8) = 730(8)

 

ЗАДАЧА 2.7.

Для обозначения цифр числа используются буквы. При этом одинаковые цифры обозначены одной буквой. Даны натуральные числа  XXX и ZYX в шестнадцатиричной системе счисления. Сумма чисел равна YYUV. Найти все варианты для X,Y,Z,U, если известно, что V=A.

РЕШЕНИЕ

1) Для цифры Х существует два допустимых значения: 5+5=А; D+D=1A. Найдем первый вариант решения при X=5.

555 + ZY5 = YYUA

2) Теперь надо определить неизвестные цифры Y, Z, U. Как это можно сделать? Продолжим рассуждения. Сколько различных вариантов можно допустить для неизвестной цифры Y? Если посмотреть внимательно, то не так много. В самом деле, значение 0 исключается (два незначащих нуля обычно не пишут). Если подставить вместо Z и Y максимально возможные шестнадцатиричные цифры, мы получим следующие варианты:

555 + EF5 = 144A

555 + FE5 = 153А

Как видно, первые две цифры суммы не могут превысить значение 15 – варианты 22, 33 и т.п. в старших разрядах суммы невозможны. Таким образом, для первых двух разрядов суммы остается только один вариант: 11 (Y=1).

555 + Z15 = 11UA

3) Теперь найти значения для Z и U совсем просто.

5+1=U, следовательно U=6(16)

5+Z=11, т.е. Z = 11(16)  - 5(16) = C(16)

555(16) + С15(16) = 116А(16)

4) Второй вариант решения получается с помощью похожих рассуждений. При X=D сумма чисел имеет вид: DDD + ZYD = YYUA.

Цифра Y может иметь только одно значение: 1 (см. выше). Таким образом, получаем еще одно допустимое решение:

DDD(16) + 41D(16) = 11FА(16)

  1. ФОРМАТ ЦЕЛОГО ЧИСЛА

 

ЗАДАЧА 3.1.

Дано положительное целое десятичное число: М = +20(10). Записать число в формате компьютера как целое число со знаком (формат с фиксированной запятой). Разрядность числа 16 бит. Результат записать в двоичной и в шестнадцатиричной системах счисления.

РЕШЕНИЕ

1) Запишем число в двоичной системе счисления. Алгоритм перевода - см. решение задачи 1.4. Получим: 10100(2)

2) Теперь необходимо записать целое положительное число в формате компьютера. Для этого достаточно добавить слева такое количество незначащих нулей, чтобы общее количество двоичных разрядов было равно 16. Для удобства перехода к 16-ричному основанию сделаем разбивку по 4 цифры.

М(2) = 0000  0000  0001  0100

При этом первый нулевой бит выполняет роль знака (+), а остальные 15 разрядов являются двоичными цифрами числа. Для перехода к 16-ричной форме записи заменяем 4-разрядные цифровые группы на их шестнадцатиричные эквиваленты. 0000(2)=0(16), 0001(2)=1(16), 0100(2)=4(16).

М(16) = 0014

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

 

ЗАДАЧА 3.2.

Дано отрицательное целое десятичное число: М = -20(10). Записать число в формате компьютера как целое число со знаком (формат с фиксированной запятой). Разрядность числа 16 бит. Результат записать в двоичной и в шестнадцатиричной системах счисления.

РЕШЕНИЕ

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

М(2) = 0000 0000 0001 0100

2) Исходное число отрицательно. Отрицательные целые числа хранятся в форме дополнительного двоичного кода. Дополнительный двоичный код (дополнение до двух) – это число, которое получается путем вычитания данного числа из определенной степени двойки. Основания для использования такой формы числа можно увидеть на примере с десятичными числами. Можно вычесть число 64 из 88 и получить 24. Но вместо этого можно прибавить к числу 88 десятичное дополнение числа 64. Десятичное дополнение числа равно 100-64=36. При сложении имеем: 88+36=124. Младшие разряды суммы дают тот же результат 24. Иначе говоря, дополнение числа (+36) в определенном смысле может заменить отрицательное число (-64). Именно этот эффект используется в компьютерах, и поэтому отрицательные числа хранятся в форме двоичных дополнений.

Для двоичного числа можно использовать упрощенные приемы перехода к дополнению, без явного вычитания. Сначала определяется обратный код числа – для этого следует заменить все единицы на нули, а все нули на единицы (инвертировать разряды числа). К полученному обратному коду нужно прибавить 1. Можно поступать еще проще: инвертировать все цифры слева направо до тех пор, пока не встретим самую правую единицу – эта единица и все нули после нее остаются на своих местах.

Теперь выполним преобразования для данного числа.

  • Прямой код числа : 0000 0000 0001 0100
  • Обратный код числа : 1111 1111 1110 1011
  • Дополнительный код числа (+1) : 1111 1111 1110 1100

М*(2) = 1111  1111  1110  1100

Мы получили изображение целого отрицательного числа в форме двоичного дополнения. Обратим внимание, что при такой форме первый разряд имеет значение единицы. Для компьютера – это признак отрицательного числа.

Для записи числа в шестнадцатиричной форме выполняем необходимые подстановки: 1111(2)=F(16), 1110(2)=E(16), 1100(2)=C(16).

М(16) = FFEC

 

ЗАДАЧА 3.3.

Дано целое число в формате компьютера (16 бит): FFD4. Запись формата числа дана в шестнадцатиричной системе счисления. Определить десятичное значение данного числа.

РЕШЕНИЕ

1) Сначала запишем двоичный код числа – заменим шестнадцатиричные цифры двоичными группами по 4 цифры.

1111  1111  1101  0100

2) Первый бит равен 1. Это значит, что число отрицательно и хранится в форме двоичного дополнительного кода.

Чтобы получить “прямое” изображение числа, надо выполнить те же преобразования, что и при получении дополнения; дополнение для дополнения дает исходное значение кода.

  • Дополнительный код числа : 1111 1111 1101 0100
  • Обратный код дополнения : 0000 0000 0010 1011
  • Прямой код числа (+1) : 0000 0000 0010 1100

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

- 101100(2) = - (32 + 0 + 8 + 4 + 0 + 0) = - (32 + 8 + 4) = - 44(10)

К этому добавим, что двоичный код мы использовали только для определения знака числа. Найти дополнение и сделать десятичный перевод можно непосредственно для шестнадцатиричного числа. Для FFD4 дополнение имеет вид: 002С (меняем все цифры на их дополнения до F, к полученному обратному коду прибавляем единицу).

- 2С(16) = - (2 x 16 + 12) = - 44(10)

  1. ФОРМАТ ДЕЙСТВИТЕЛЬНОГО ЧИСЛА

 

ЗАДАЧА 4.1.

Дано отрицательное действительное десятичное число: B = -450,0390625(10). Записать число в формате компьютера (формат с плавающей запятой). Разрядность числа 32 бит. Результат записать в двоичной и в шестнадцатиричной системах счисления.

РЕШЕНИЕ

1) Сначала запишем число в двоичной системе счисления.

Получим:

B(2) =  -111000010,0000101

2) Любое число в системе счисления с основанием Х может быть представлено в форме произведения двух чисел, одно из которых является определенной степенью основания системы. Такая форма называется нормальной или научной записью и часто используется в технических и естественных науках. Она очень удобна для изображения очень больших или очень маленьких чисел. Вместо записи десятичного числа 150 000 000 000 лучше написать (1,5 х 1011). Запишем полученное двоичное число в нормальной форме. При этом двойку и показатель степени проще указать в обычной десятичной системе счисления.

B*(2) =  -1,110000100000101 х 2 +8

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

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

Машинная форма числа хранит не сам порядок, а его смещенное значение – характеристику числа. Это сделано для того, чтобы не хранить знак порядка. Характеристика числа всегда будет только положительным числом, и операции сравнения чисел выполняются проще. Для этого исходный порядок увеличивают на постоянную величину, которая называется смещением и зависит от конкретной разновидности формата. Для 32-разрядного числа к порядку прибавляют число +127 (127 в десятичной системе счисления, в самом компьютере, конечно, не 127, а двоичное число 1111111). Чтобы получить из характеристики истинное значение порядка нужно выполнить обратную операцию. Отношения между смещенным порядком числа (П*) и истинным порядком (П) удобно изобразить с помощью простых формул (а – смещение порядка).

П* = П + a;  П = П* - a

Значащие цифры числа в форме с плавающей запятой принято называть мантиссой числа. При этом значение мантиссы любого ненулевого числа выбирают таким образом, чтобы целая часть числа была равна единице. Это требование можно записать в виде неравенства.

1 £ | М | < 2

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

Поскольку целый разряд ненулевой мантиссы всегда равен 1, то эта единица в памяти компьютера не хранится, а только подразумевается. Это полезное техническое решение, потому что 32 и даже 64 двоичные цифры – это не очень много для сложных задач вычислительной математики.

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

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

Теперь мы можем выполнить все необходимые процедуры.

3) Определим значение характеристики числа. Для полной ясности покажем это в трех системах счисления.

  • Десятичная : 8 + 127 = 135
  • Двоичная : 1000 + 1111111 = 10000111
  • Шестнадцатиричная : 8 + 7F = 87

4) Машинная форма числа содержит три элемента: знак, характеристику и мантиссу.  Нужно записать все двоичные числа в поле длиной 32 бит.

Первый бит – это знак мантиссы. Для отрицательного числа он равен 1. Дальше 8 бит образуют двоичное значение характеристики (10000111). Последние 23 бита – это дробная часть мантиссы (целый бит не хранится).

Напишем еще раз все элементы нашего числа.

  • Знак : 1
  • Характеристика : 10000111
  • Дробная часть мантиссы : 11000010000010100000000

Сборка всех элементов дает окончательный двоичный результат. Для удобства перехода к 16-ричному основанию сделаем разбивку по 4 цифры.

B(2) = 1100  0011  1110  0001  0000  0101  0000  0000

Переход к 16-ричному основанию производим в соответствии с известным правилом замены.

B(16) = С3 Е1 05 00

 

ЗАДАЧА 4.2.

Дано действительное число в формате компьютера (32 бит): C1040000. Запись формата дана в шестнадцатиричной системе счисления. Определить десятичное значение данного числа.

РЕШЕНИЕ

1) Сначала запишем двоичный код числа – заменим шестнадцатиричные цифры 4-разрядными двоичными:

1100 0001 0000 0100 0000 0000 0000 0000

Для анализа более удобна другая форма – разделим основные части числа с плавающей запятой.

1       10000010        00001000000000000000000

Теперь у нас есть все для решения задачи.

2) Знак числа определяется сразу – бит 1 в первом разряде говорит о том, что число отрицательно.

3) Порядок числа получим путем вычитания смещения из значения смещенного порядка. Это можно сделать в любой системе счисления – выбирайте ту, где Вы можете считать без ошибок. Мы сделаем это в шестнадцатиричной системе.

10000010(2) = 82(16)

82(16) – 7F(16) = 3(16)

4) Мантисса числа получится без особых трудностей – целый бит всегда равен 1, остальные цифры надо взять из формата.

1,00001(2)

5) Теперь можно записать двоичное число с “нормальным” порядком и мантиссой:

-1,00001(2) х 2+3

6) Порядок говорит только о реальном положении запятой (точки) в двоичном числе. Сдвигаем запятую на три разряда вправо.

-1000,01(2)

Это и есть “настоящее” число. Пока оно записано в двоичной системе счисления. Перевод в десятичную сделать нетрудно.

-1000,01(2) = - (8 + 0 + 0 + 0 + 0 + ¼ ) = - 8,25(10)

 

ЗАДАЧА 4.3.

Найти результат выполнения арифметической операции Z=X+Y. Значения переменных X и Y заданы в формате с плавающей точкой в 16-ричной системе счисления. Тип переменных – 32-разрядное число c плавающей точкой в формате компьютера. Результат представить в 16-ричной системе счисления в формате с плавающей точкой и в десятичной системе счисления (действительное десятичное число). Аргументы операции равны:

X = C424DA00
Y = 4412EA00

РЕШЕНИЕ

1) Сначала запишем двоичные представления чисел – так легче представить структуру машинного кода.

X = 1  10001000  01001001101101000000000

Y = 0  10001000  00100101110101000000000

2) Числа имеют одинаковые смещенные порядки. Значит операцию над мантиссами можно выполнять непосредственно – одноименные разряды уже находятся в одной позиции. Числа имеют противоположные знаки – X отрицательно, Y – положительно, причем модуль мантиссы X больше, чем мантисса Y. Следовательно, мы должны выполнить вычитание мантиссы Y из мантиссы X, полученная разность будет отрицательна.

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

 

 

*

 

 

*

*

*

*

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,

0

1

0

0

1

0

0

1

1

0

1

1

0

1

0

0

0

0

0

0

0

0

0

1,

0

0

1

0

0

1

0

1

1

1

0

1

0

1

0

0

0

0

0

0

0

0

0

0,

0

0

1

0

0

0

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

Итак, мантисса разности получена. Обратим внимание, что она ненормализована – ее значение стало меньше единицы.

3) Определим порядок двоичного числа. Для этого из смещенного порядка нужно вычесть значение смещения. Это легко сделать в шестнадцатиричной системе счисления. Шестнадцатиричное смещение для формата 32-разрядного числа равно 7F. Смещенный порядок числа в шестнадцатиричной записи равен 88.

Таким образом, получим значение порядка без смещения.

Порядок: 88(16) - 7F(16) = 9(16)

Мы получили все данные для записи результата в форме обычного десятичного числа. Порядок числа равен 9. Мантисса: 0,00100011111. Чтобы получить число в естественной форме нужно сдвинуть запятую на 9 позиций вправо.

Запишем результат вычислений:

-1000111,11(2)

Для перевода в десятичную систему счисления выполним стандартные преобразования:

Целая часть             : - (64 + 4 + 2 + 1 ) = - 71

Дробная часть        : 1/2 + 1/4 = 0,75

Окончательный результат в форме десятичного числа:

-71,75

4) Для полного решения задачи осталось записать число в машинной форме с плавающей запятой.

Для записи машинного числа необходимо нормализовать мантиссу – ее целая часть должна находиться между 1 и 2. Для этого сдвинем запятую так, чтобы целая часть мантиссы стала равной 1. Поскольку сдвиг запятой осуществляется вправо на 3 разряда, то значение смещенного порядка надо уменьшить соответственно на 3 единицы.

Получим новые значения для мантиссы и смещенного порядка.

Мантисса до нормализации         : 0,00100011111

Мантисса после нормализации   : 1,00011111000

Характеристика                             : 88(16) – 3(16) = 85(16) = 10000101(2)

Теперь у нас есть все элементы для записи числа в формате компьютера.

Машинная форма числа:

1   10000101    00011111000000000000000

То же с разбивкой на группы разрядов:

1100 0010 1000 1111 1000 0000 0000 0000

Шестнадцатиричное представление числа:

C2 8F 80 00

 

 

ЗАДАЧА 4.4.

Найти результат выполнения арифметической операции Z=X+Y. Значения переменных X и Y заданы в формате с плавающей точкой в 16-ричной системе счисления. Тип переменных – 32-разрядное число c плавающей точкой в формате компьютера. Результат представить в 16-ричной системе счисления в формате с плавающей точкой. Аргументы операции равны:

X = 40600000
Y = 40D00000

РЕШЕНИЕ

1) Сначала просто запишем двоичные представления чисел.

X = 0100  0000  0110  0000  0000  0000  0000  0000

Y = 0100  0000  1101  0000  0000  0000  0000  0000

Выделим в коде числа основные элементы формата: знак, характеристику и мантиссу.

X = 0  10000000  11000000000000000000000

Y = 0  10000001  10100000000000000000000

2) Первый разряд содержит 0, значит оба числа положительны. Поэтому будем выполнять обычное сложение двух чисел.

Сравним характеристики двух чисел. Они не равны. Значит не равны и порядки чисел. Положение точки в записи чисел различно, и складывать эти разряды так, как они записаны в вертикальных парах, нельзя.

Эта обычная ситуация разрешается в компьютерах следующим образом. Положение двоичной запятой в числах нужно совместить. Мы всегда можем перенести запятую влево на любое число позиций и одновременно увеличить величину порядка на соответствующее число. Значение числа при этом не меняется.

Действительно, все числа в следующих строках определяют одно и то же значение в двоичной системе счисления: 110,1.

1,101 х 22

0,1101 х 23

0,01101 х 24

3) Именно так происходит выравнивание чисел в компьютере. Характеристику с меньшим значением нужно увеличить до большего значения. При этом мантиссу этого числа надо сдвинуть вправо на соответствующее число разрядов.

Сначала запишем мантиссы в обычной форме с целой частью. Это поможет выполнить операции более просто и надежно. Оставим после запятой только 4 разряда – остальные незначащие нули можно временно отбросить.

X = 1, 1100

Y = 1, 1010

Характеристики чисел отличаются на 1 (10000001-10000000). При этом порядок числа Y больше, чем порядок числа X. Это значит, что мантиссу X нужно сдвинуть вправо ровно на один разряд.

X = 0, 1110

Y = 1, 1010

Теперь порядки чисел равны и разряды чисел расположены верно – один под другим. Следовательно, сложение чисел можно выполнить. При этом обратим внимание на то, что порядок Х равен 10000001 и значение числа не изменилось.

X =  0, 1110

Y =  1, 1010

----------

Z = 10, 1000

4) Мы получили сумму мантисс – она равна 10,1. Интересно, что свойство нормализации нарушилось. Для нормализации мантиссы нужно перенести запятую на один разряд влево. Одновременно характеристику числа следует увеличить на единицу – при этом число сохранит свое значение.

Получим новое значение смещенного порядка для суммы:

10000001(2) + 1(2) = 10000010(2)

При этом мантисса будет иметь значение:

1,01(2)

Теперь все элементы суммы известны. Остается собрать все вместе и выполнить все требования машинного представления.

0   10000010   01000000000000000000000

0100  0001  0010  0000  0000  0000  0000  0000

Переход к 16-ричному основанию уже не представляет никакой трудности. Покажем только окончательный результат.

41 20 00 00

Добавлено: 10.09.2017
Рейтинг: 8.2
Комментарии:
0
Сказали спасибо 0
Сказать спасибо
footer logo © Образ–Центр, 2020. 12+