УДК 004.6
ПРЕДСТАВЛЕНИЕ ЧИСЛОВОЙ ИНФОРМАЦИИ В ПАМЯТИ КОМПЬЮТЕРА
Г. С. Итпекова
Хакасский государственный университет им. Н. Ф. Катанова
В работе рассматриваются способы машинного представления числа, а также вопросы реализации двоичной арифметики в памяти ЭВМ. На основании теорем устанавливается взаимосвязь между системами счисления с основаниями Т. Приводятся примеры внутреннего представления целого числа в формате с фиксированной точкой и вещественного числа в формате с плавающей точкой.
Ключевые слова: система счисления, нормализованная форма записи числа, дополнительный код, формат с фиксированной точкой, формат с плавающей точкой.
Известно, что компьютер осуществляет обработку числовой, символьной, графической и звуковой информации, представленной в двоичном коде. Разделы информатики, посвящённые компьютерным технологиям обработки информации, включают темы представления соответствующих видов данных (чисел, символов, изображения, звука). Для того чтобы хранить информацию в памяти ЭВМ, принимают некоторые соглашения о способах представления и организации данных. В учебной литературе существуют различные подходы к изложению вопросов, связанных с пониманием принципов кодирования любой информации [1; 2; 3 и др.].
Объектом данной статьи является кодирование информации, а предметом - способы машинного представления числа. Выбор темы обусловлен тем, что решение вычислительных задач с использованием компьютера сводится к преобразованию числовой информации, и при этом возникают вопросы, касающиеся представления чисел и реализации двоичной арифметики в ЭВМ. Так как в памяти компьютера хранятся целые и вещественные числа и при этом числовые данные представляются определёнными форматами, то понимание вопросов кодирования числовой информации требует знаний о системах счисления и основах арифметики нормализованных чисел.
Когда речь идёт о процессе формирования представления числовой информации в памяти компьютера, то имеют в виду, что она представлена в двоичной системе счисления. Под системой счисления принято понимать совокупность приёмов обозначения (записи) чисел [2]. Наиболее совершенными являются позиционные системы счисления. В них значение каждой цифры в записи числа зависит от её положения (позиции) в ряду других чисел, изображающих число. Минимальной системой, в которой реализуется принцип позиционности в цифровой форме записи числа, является двоичная система счисления, основание которой q = 2.
Как известно, двоичная система является системой, пригодной для аппаратной реализации. Более глубокое изучение данной системы в прикладной математике началось с 30-х гг. XX века. Это было обусловлено, с одной стороны, потребностью создания надёжных и простых по конструкции счётных механических устройств, а с другой - простотой двоичной арифметики. В 1946 году А. Беркс, Х. Гольдстайн и Дж. фон Нейман опубликовали работу о проекте первой ЭВМ с хранимой в памяти программой [2]. Эта работа утвердила двоичную арифметику в качестве общепринятой основы при конструировании ЭВМ с программным управлением.
Общеизвестно, что естественным обобщением двоичной системы являются системы с основаниями q = 8 и q = 16. Эти системы счисления широко распространены, и между ними существует взаимосвязь, которая определяется двумя теоремами [2].
Теорема 1. Для записи целого двоичного числа в системе счисления с основанием q = 2" достаточно данное двоичное число разбить на грани справа налево (т. е. от младших разрядов к старшим) по " цифр в каждой грани. Затем каждую такую грань следует рассмотреть как " - разрядное двоичное число и записать его как цифру в системе с основанием q = 2П .
Доказательство. Пусть дано (abcdef ) . Выполняя преобразования, получим
(abcdef) q = a ■ q5 + b ■ q4 + c ■ q3 + d ■ q2 + eq + f = = (aq2 + bq + c)q~
= A ■ q3 + B = Ap + B = ABp ; Ap = aq2 + bq + c = abcq;
BP = dq2 + eq + f = defq.
Таким образом, трёхразрядные числа системы счисления с основанием q записаны как цифры системы с основанием p.
Пример 1. Число 111011101002 заменить равным ему числом восьмеричной системы счисления, т. е. системы с основанием q = 23.
В соответствии с теоремой 1 разбиваем число от младших разрядов к старшим по три цифры в каждой грани:
011 101 110 100 3 5 6 4
-(aq2 + bq + c)q3 + (dq2 + eq + f )=
Внизу под каждой из граней выписаны цифры, соответствующие трёхразрядным двоичным числам:
112 = 38, 1012 = 58, 1102 = 68, 1002 = 48.
Итак, 111011101002 = 35648.
Теорема 2. Для замены целого числа, записанного в системе с основанием p = 2П, равным ему числом в двоичной системе счисления, достаточно каждую цифру данного числа заменить и-разрядным двоичным числом.
Доказательство. Пусть дано ABC , где p = q3.
Имеем
ABC =Ap2+Bp+C=
= (aq2 + bq + c)(q3) + (dq2 + eq + f )q3 + (kq2 + Iq + m)= = aq8 + bq1 + cq6 + dq5 + eq 4 + fq3 + kq2 +1 q + m = = abcde fklmnq .
Пример 2. Число 27538 заменить равным ему двоичным числом.
В соответствии с теоремой 2 каждую цифру данного числа представим трёхразрядным двоичным числом:
2 7 5 5
010 111 101 011
Получим равенство 27538 = 0101111010112.
Алгоритмы замены целых чисел и правильных дробей какой-либо системы счисления с основанием q равными числами другой системы с основанием p приводит В. Н. Касаткин [2]. Кроме того, автор знакомит со смешанными системами счисления.
В результате анализа учебной и учебно-методической литературы выявлено, что при изложении информации о представлении чисел в памяти ЭВМ используются разные приёмы. В учебнике И. Г. Семакина [1] содержание учебной информации о представлении чисел связано со структурой памяти компьютера. Описание методики представления информации в двоичной форме дано в учебном пособии под редакцией А. И. Семенова [3]. Тема «Кодирование числовой информации» представлена через обсуждение естественной и экспоненциальной форм записи числа и формата с фиксированной и плавающей точкой в пособии О. Л. Соколовой [4]. Вопросы реализации арифметики в ЭВМ уточняются В. Н. Касаткиным через понятия нормализации чисел. Далее речь пойдет о нормализованных числах, так как запись чисел в нормализованной форме используется при представлении в памяти ЭВМ вещественных чисел. Именно в случае понимания, что такое «мантисса» и «порядок» нормализованного числа, происходит овладение подлинной культурой точных вычислений с использованием компьютера.
Определение. Число А называется нормализованным, если оно представлено в виде
A 10 =±M10-10 ±p'°,
где M10 - мантисса, которая представляет собой десятичную правильную дробь, равную или больше 0,1 (т. е. 0,1 < M10 < 1); p10 - порядок, он является целым десятичным числом.
Приведём примеры нормализованного представления чисел:
29710 = 0,297-103 (М10 = 0,297; p 10 = 3),
0,03110 = 0,31-10-1 (м 10 = 0,31; p 10 =-1),
-34,17610 =-0,34176-102 (М10 =-0,34176; p 10 = 2).
При нормализации числа его запись имеет следующие составляющие: знак числа - знак порядка; модуль мантиссы - модуль порядка. В нормализованной форме могут быть представлены натуральные, целые, рациональные и иррациональные числа. Нормализованные числа образуют множество чисел, в которых действует своя арифметика.
Арифметика нормализованных чисел тесно связана с её реализацией в вычислительных устройствах. Эта связь состоит в том, что в любом вычислительном устройстве, использующем арифметику нормализованных чисел, в памяти для хранения результатов в сумматоре отводится установленное число разрядов как для порядка (p10), так и для мантиссы (М10). Кроме того, определяется способ хранения знаков мантиссы и порядка. Нормализация чисел позволяет создать единую арифметику. Для вычислительных устройств нет проблемы распознавания типа числа, так как арифметическое устройство работает только с мантиссами и порядками.
Перейдём к рассмотрению вопроса о внутреннем (машинном) представлении числа на примере 16-разрядной машины. Числа в памяти ЭВМ хранятся в двух форматах: в формате с фиксированной точкой и в формате с плавающей точкой. Под точкой подразумевается знак разделения целой и дробной части числа. Формат с фиксированной точкой используется для хранения в памяти целых чисел. В случае 16-разрядной машины число занимает одно машинное слово памяти (16 бит) и для хранения чисел отводится 16 разрядов, которые в совокупности представляют двухбайтовую разрядную сетку.
Для целых чисел существуют два представления: беззнаковое (только для неотрицательных целых чисел) и со знаком. Очевидно, что отрицательные числа можно представлять только в знаковом виде. Для беззнакового
представления числа все разряды ячейки отводятся под него. Например, в байте (8 бит) можно представить беззнаковые числа от 0 до 28 - 1 = 255. В двухбайтовой разрядной сетке можно сохранить диапазон чисел от 0 до 216 - 1 = 65535. Поэтому, если известно, что числовая величина является неотрицательной, то выгоднее рассматривать её как беззнаковую.
Для представления целых чисел со знаком самый старший (левый) бит отводится под знак числа, остальные разряды - под само число. Знак положительного числа кодируется нулём, а знак отрицательного числа кодируется единицей. Код знака числа хранит первый слева двоичный разряд. Например, в байте можно представить знаковые целые числа от -27 = -128 до 27 - 1 = 127, в двухбайтовой разрядной сетке диапазон целых чисел со знаком будет составлять от -215 = -32768 до 215 - 1 = 32767. Покажем на примерах, как получить внутреннее представление целого числа N в формате с фиксированной точкой и вещественного числа в формате с плавающей точкой.
Пример 3. Представить число N = 160710 в двухбайтовой разрядной сетке.
1. Переведём число 160710 в двоичную систему счисления.
N = 160710 = 110010001112.
2. Изобразим шестнадцатиразрядную сетку размером в 2 байта = 16 бит (рис. 1).
| Код знака
Рис. 1. Шастнадцатиразрядная сетка 3. Впишем число 110010001112, начиная с младшего разряда (рис. 2).
Рис. 2. Запись числа в сетку 4. Заполним оставшиеся разряды нулями (рис. 3).
Рис. 3. Заполнение оставшихся разрядов нулями На рисунке 3 изображено внутреннее представление числа N = 160710 в двухбайтовой разрядной сетке.
Пример 4. Представить отрицательное число N = -160710 в двухбайтовой разрядной сетке.
1. Переведём модуль числа -160710 в двоичную систему счисления. 160710 = 110010001112.
2. Изобразим шестнадцатиразрядную сетку (рис. 1).
3. Следуя пунктам 3-4 из примера 3, получим внутреннее представление модуля числа. 0000 0110 0100 0111 - прямой код числа.
4. Найдём обратный код числа, заменив в прямом коде нули на единицы, а единицы на нули: 1111 1001 1011 1000 - обратный код.
5. Найдём дополнительный код числа, прибавив к обратному коду единицу:
1111 1001 1011 1000 1
1111 1001 1011 1001 - дополнительный код
6. Впишем дополнительный код в разрядную сетку (рис. 4).
Рис. 4. Представление целого отрицательного числа 28
Внутреннее представление отрицательного числа N = -160710 в двухбайтовой разрядной сетке изображено на рисунке 4. Описанный в примере 4 способ представления целого отрицательного числа называют дополнительным кодом. Старший разряд в представлении любого отрицательного числа равен 1. Его принято называть знаковым разрядом, так как он указывает на знак числа.
Возникает вопрос, с какой целью отрицательные числа записываются в виде дополнительного кода и как получить дополнительный код отрицательного числа? Дополнительный код используется для упрощения выполнения арифметических операций. Если бы вычислительная машина работала с прямыми кодами положительных и отрицательных чисел, то при выполнении арифметических операций следовало бы выполнять ряд дополнительных действий. Например, при сложении нужно было бы проверять знаки обоих операндов и определять знак результата. Если знаки одинаковые, то вычисляется сумма операндов и ей присваивается тот же знак. Если знаки разные, то из большего по абсолютной величине числа вычитается меньшее и результату присваивается знак большего числа. То есть при таком представлении чисел (в виде только прямого кода) операция сложения реализуется через достаточно сложный алгоритм. Если же отрицательные числа представлять в виде дополнительного кода, то операция сложения, в том числе и разного знака, сводится к их поразрядному сложению. Алгоритм получения дополнительного кода положительного и отрицательного числа описан в практикуме по информатике [5].
Таким образом, применение дополнительного кода для внутреннего представления отрицательных чисел даёт возможность заменить операцию вычитания операцией сложения с отрицательным числом: N - М = N + (-М). Очевидно, должно выполняться следующее равенство: N + (- Ы) = 0. Выполним такое сложение для полученных выше чисел 1607 и -1607.
_ 0000 0110 0100 0111 _ 1607
1111 1001 1011 1000 1607
1 0000 0000 0000 0000 0
Единица в старшем разряде, получаемая при сложении, выходит за границу разрядной сетки машинного слова и исчезает, а в памяти остаётся ноль.
Перейдём к кодированию вещественных чисел. Недостатком представления чисел в формате с фиксированной запятой является конечный диапазон представления величин, недостаточный для решения математических, физических, экономических и других задач, в которых используются как очень малые, так и очень большие числа. Поэтому для представления вещественных чисел используют другой формат - формат с плавающей точкой (запятой). Число обычной точности в данном формате занимает в памяти компьютера четыре байта, а в случае представления числа двойной точности - восемь байт.
Кодирование вещественных чисел опирается на их нормализованную (экспоненциальную) запись. Как и для целых чисел, при представлении действительных чисел в памяти компьютера используется двоичная система счисления, следовательно, предварительно десятичное число должно быть переведено в двоичную систему.
При представлении чисел с плавающей запятой часть разрядов ячейки отводится для записи порядка числа, остальные разряды - для записи мантиссы. По одному разряду в каждой группе отводится для изображения знака порядка и знака мантиссы. Для того чтобы не хранить знак порядка, был придуман так называемый смещённый порядок (СП) [5]. Он рассчитывается по формуле СП = р + 272, где а - количество разрядов, отводимых под порядок.
Запишем алгоритм представления числа с плавающей точкой (запятой):
1) перевести число из системы счисления с основанием р в двоичную;
2) представить двоичное число в нормализованной экспоненциальной форме;
3) рассчитать смещённый порядок числа;
4) поместить знак, порядок и мантиссу в 32-разрядную сетку.
Пример 5. Представить число 25,324 в формате с плавающей точкой.
1. Переведём число в двоичную систему счисления.
2510=110012;
0,32410=0,0101001011100011012. 25, 32410= 11001,0101001011100011012
2. Запишем представленное в двоичной системе счисления число в форме нормализованного двоичного числа с плавающей точкой:
11001,0101001011100011012 = 0,110010101001011100011012 ■ 10101
3. Вычислим смещённый порядок:
СП = 1012 + 10000002= 1000101
4. Запишем представление числа в ячейке памяти (рис. 5).
0 1|о|о|о|1|о|1 1 | 1 | 0| 0| 1 I 0 I 1 I 0 I 1 I 0 I 0| 1 I 0 I 1 I 1 I 1 I 1 I 0 I 0 I 0| 1 I 1 I 0 I 1 1
Смещенный порядок Мантисса |
| Знак числа '['Знак мантиссы
Рис. 5. Представление числа в ячейке памяти 29
Можно заметить, что представление действительного числа не очень удобно изображать в двоичной системе, поэтому с практической точки зрения используют взаимное преобразование двоичных, восьмеричных и шестнадцатеричных чисел [6]. Искомый результат в шестнадцатеричной форме будет иметь вид 45CA978D.
Для того чтобы получить внутреннее представление отрицательного числа -25,324, достаточно в полученном выше коде заменить в знаке разряда число 0 на 1 (рис. 6), шестнадцатеричная форма будет иметь вид: C5CA978D.
Рис. 6. Представление числа -25,324 в ячейке памяти
Рассмотрим вопрос о диапазоне вещественных чисел. Максимальное число, представленное в формате с плавающей точкой, - это число с самой большой мантиссой и самым большим порядком:
0,111111111111111111111111x10, 1111111.
Если перевести в десятичную систему, то получится
R max =(1 - 2 -24 )x 2 64 «10 19 .
Множество вещественных чисел, представляемых в памяти ЭВМ в формате с плавающей точкой, является ограниченным и дискретным. Каждое следующее значение получается прибавлением к мантиссе предыдущего единицы в последнем разряде. В учебнике [1] указывается формула, которая позволяет вычислить количество вещественных чисел, точно представимых в памяти машины:
N = 2' x(u-L + 1)+1.
В приведённой формуле t - количество двоичных разрядов мантиссы; U - максимальное значение математического порядка; L - минимальное значение порядка. Все числа, не попадающие во множество вещественных чисел, точно представимых в памяти машины, представляются в ней приближённо. При этом мантисса обрезается на последнем разряде. Результаты вычислений с такими числами будут содержать погрешность. Отсюда следует вывод: вычисления с вещественными числами в компьютере выполняются приблизительно.
Библиографический список
1. Семакин, И. Г. Информатика. Базовый курс для 7-9 классов / И. Г. Семакин, Л. А. Залогова, С. В. Русаков, Л. В. Шестакова. - М.: Лаборатория Базовых Знаний, 2000. - С. 316-321.
2. Касаткин, В. Н. Информация, алгоритмы, ЭВМ: пособие для учителя / В. Н. Касаткин. - М.: Просвещение, 1991. - С. 52-53.
3. Семёнов, А. И. Информатика: Практикум / под ред. А. И. Семёнова / А. И. Семёнов. - Абакан: Изд-во ХГУ им. Н. Ф. Катанова, 2003. -С. 9-12.
4. Соколова, О. Л. Универсальные поурочные разработки по информатике: 10 класс / О. Л. Соколова. - М.: ВАКО, 2007. - С. 226-232.
5. Могилёв, А. В. Практикум по информатике: учеб. пособие для студ. высш. учеб. заведений / А. В. Могилёв, Н. И. Пак, Е. К. Хеннер; под ред. Е. К. Хеннера. - 5-е изд., стер. - М.: Издательский центр «Академия», 2009. - С. 33-36.
6. Могилёв, А. В. Информатика: учеб. пособие для студ. пед. вузов / А. В. Могилёв, Н. И. Пак, Е. К. Хеннер; под ред. Е. К. Хеннера. -7-е изд., стер. - М.: Издательский центр «Академия», 2009. - С. 28-33.
© Итпекова Г. С., 2013
УДК 004.92+71/76(03)
ГИБРИДИЗАЦИЯ КАК ОДИН ИЗ ВЕДУЩИХ ТВОРЧЕСКИХ МЕТОДОВ СОЗДАНИЯ ДИЗАЙНЕРСКОЙ ИНФОГРАФИКИ
С. В. Остриков
Научный руководитель — А. Н. Лаврентьев, доктор искусствоведения, профессор кафедры коммуникативного дизайна
МГХПА им. С. Г. Строганова Московская государственная художественно-промышленная академия (МГХПА) им. С. Г. Строганова
Учитывая богатый визуальный ряд электронных и печатных СМИ, автор выделяет такой творческий метод создания информационной графики, как гибридизация, и теоретически обосновывает её сущность, описывая три вида гибридизации: внутривидовую, межвидовую и комплексную.
Ключевые слова: инфографика, гибридная инфографика, гибридизация инфографики, виды гибридизации, внутривидовая гибридизация, межвидовая гибридизация, комплексная гибридизация.
Анализ фактов исторической и современной информационной графики позволяет утверждать, что основной тенденцией её развития является гибридизация (термин применяется нами в качестве рабочего), т. е. наложение одного типа/вида инфографики на другой и/или их сочетание в разных вариантах. Это обусловлено необходимостью повышать эффективность инфографики, которая должна передавать больший объём информации на единице площади.
Для инфографа (иначе - дизайнера инфографики) гибридизация является одним из важнейших творческих инструментов дизайна, не случайно мы считаем её одним из ведущих способов разработки дизайнерских ин-