Научная статья на тему 'Представление числовой информации в памяти компьютера'

Представление числовой информации в памяти компьютера Текст научной статьи по специальности «Математика»

CC BY
1436
88
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
NUMBER SYSTEM / НОРМАЛИЗОВАННАЯ ФОРМА ЗАПИСИ ЧИСЛА / THE NORMALIZED NUMBER / ДОПОЛНИТЕЛЬНЫЙ КОД / ADDITIONAL CODE / ФОРМАТ С ФИКСИРОВАННОЙ ТОЧКОЙ / FIXED-POINT FORMAT / FLOATING-POINT FORMAT / ФОРМАТ С ПЛАВАЮЩЕЙ ТОЧКОЙ / СИСТЕМА СЧИСЛЕНИЯ

Аннотация научной статьи по математике, автор научной работы — Итпекова Галина Семёновна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Presentation of Numerical Information in the Computer Memory

The article discusses ways of machine number presentation and questions of realization of the binary arithmetic in the computer memory. On the basis of the theorems, the author establishes a close relationship between the number systems with bases 2 n. We consider examples of the internal presentation of a number in the format of a fixed-point and floating-point number in floating point format

Текст научной работы на тему «Представление числовой информации в памяти компьютера»

УДК 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.

Если перевести в десятичную систему, то получится

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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)

ГИБРИДИЗАЦИЯ КАК ОДИН ИЗ ВЕДУЩИХ ТВОРЧЕСКИХ МЕТОДОВ СОЗДАНИЯ ДИЗАЙНЕРСКОЙ ИНФОГРАФИКИ

С. В. Остриков

Научный руководитель — А. Н. Лаврентьев, доктор искусствоведения, профессор кафедры коммуникативного дизайна

МГХПА им. С. Г. Строганова Московская государственная художественно-промышленная академия (МГХПА) им. С. Г. Строганова

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

Ключевые слова: инфографика, гибридная инфографика, гибридизация инфографики, виды гибридизации, внутривидовая гибридизация, межвидовая гибридизация, комплексная гибридизация.

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

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

i Надоели баннеры? Вы всегда можете отключить рекламу.