Любое число можно рассматривать как вещественное. Представление чисел в компьютере

Ключевые слова:

  • разряд
  • беззнаковое представление целых чисел
  • представление целых чисел со знаком
  • представление вещественных чисел
  • формат с плавающей запятой

1.2.1. Представление целых чисел

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

Рис. 1.2. Ячейка памяти

Для компьютерного представления целых чисел используется несколько различных способов представления, отличающихся друг от друга количеством разрядов (под целые числа обычно отводится 8, 16, 32 или 64 разрядов) и наличием или отсутствием знакового разряда. Беззнаковое представление можно использовать только для неотрицательных целых чисел, отрицательные числа представляются только в знаковом виде.

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

Максимальное значение целого неотрицательного числа достигается в случае, когда во всех разрядах ячейки хранятся единицы. Для n-разрядного представления оно будет равно 2 n -1. Минимальное число соответствует n нулям, хранящимся в n разрядах памяти, и равно нулю.

Ниже приведены максимальные значения для беззнаковых целых n-разрядных чисел:

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

Пример 1. Число 53 10 = 110101 2 в восьмиразрядном представлении имеет вид:

Это же число 53 в шестнадцати разрядах будет записано следующим образом:

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

На сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/) размещён информационный модуль «Число и его компьютерный код». С помощью этого ресурса вы можете получить дополнительную информацию по изучаемой теме.

Для выполнения операций с отрицательными числами используется дополнительный код, позволяющий заменить операцию вычитания сложением. Узнать алгоритм образования дополнительного кода вы можете с помощью информационного модуля «Дополнительный код», размещённого на сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/).

1.2.2. Представление вещественных чисел

Любое вещественное число А может быть записано в нормальной (научной, экспоненциальной) форме:

А = ±m q p ,

    m - мантисса числа;

    р - порядок числа.

Например, число 472 000 000 может быть представлено так: 47,2 10 7 , 472 10 6 , 4720 10 7 и т. д.

С нормальной формой записи чисел вы могли встречаться при выполнении вычислений с помощью калькулятора, когда в качестве ответа получали записи следующего вида: 4.72Е+8.

Здесь знак «Е» обозначает основание десятичной системы счисления и читается как «умножить на десять в степени».

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

Для единообразия мантиссу обычно записывают как правильную дробь, имеющую после запятой цифру, отличную от нуля. В этом случае число 472 000 000 будет представлено как 0,472 10 9

Число в формате с плавающей запятой может занимать в памяти компьютера 32 или 64 разряда. При этом выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы.

Диапазон представления вещественных чисел определяется количеством разрядов, отведённых для хранения порядка числа, а точность определяется количеством разрядов, отведённых для хранения мантиссы.

Максимальное значение порядка числа, как видно из приведённого выше примера, составляет 1111111 2 = 127 10 , и, следовательно, максимальное значение числа:

0,11111111111111111111111 10 1111111

Попытайтесь самостоятельно выяснить, каков десятичный эквивалент этой величины.

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

Самое главное

Для компьютерного представления целых чисел используются несколько различных способов, отличающихся друг от друга количеством разрядов (8, 16, 32 или 64) и наличием или отсутствием знакового разряда.

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

При представлении со знаком самый старший разряд отводится под знак числа, остальные разряды - под само число. Если число положительное, то в знаковый разряд помещается 0, если число отрицательное, то 1. Положительные числа хранятся в компьютере в прямом коде, отрицательные - в дополнительном.

Вещественные числа в компьютере хранятся в формате с плавающей запятой. При этом любое число записывается так:

А = ±m q p ,

    m - мантисса числа;

    q - основание системы счисления;

    р - порядок числа.

Вопросы и задания

  1. Как в памяти компьютера представляются целые положительные и отрицательные числа?
  2. Любое целое число можно рассматривать как вещественное, но с нулевой дробной частью. Обоснуйте целесообразность наличия особых способов компьютерного представления целых чисел.
  3. Представьте число 63 10 в беззнаковом 8-разрядном формате.
  4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком:
  5. Какие из чисел 443 8 , 101010 2 , 256 10 можно сохранить в 8-разрядном формате?
  6. Запишите следующие числа в естественной форме:

      а) 0,3800456 10 2 ;

      б) 0,245 10 -3 ;

      в) 1,256900Е+5;

      г) 9,569120Е-3.

  7. Запишите число 2010,0102 10 пятью различными способами в нормальной форме.
  8. Запишите следующие числа в нормальной форме с нормализованной мантиссой - правильной дробью, имеющей после запятой цифру, отличную от нуля:

    а) 217,934 10 ;

    в) 0,00101 10 .

  9. Изобразите схему, связывающую основные понятия, рассмотренные в данном параграфе.

§ 1.2. Представление чисел в компьютере

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

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

2. Как в памяти компьютера представляются целые положительные и отрицательные числа?

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

4. Представьте число 63 10 в беззнаковом 8-разрядном формате.

5. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком:

    а) 01001100;
    б) 00010101.

6. Какие из чисел 443 8 , 101010 2 , 256 10 можно сохранить в 8-разрядном формате?

7. Запишите следующие числа в естественной форме:

    а) 0,3800456 10 2 ;
    б) 0,245 10 -3 ;
    а) 1,256900Е+5;
    а) 9,569120Е-3.

8. Запишите число 2010,0102 10 пятью различными способами в экспоненциальной форме.

9. Запишите следующие числа в экспоненциальной форме с нормализованной мантиссой - правильной дробью, имеющей после запятой цифру, отличную от нуля:

    а) 217,934 10 ;
    б) 75321 10 ;
    в) 0,00101 10 .

10. Изобразите схему, связывающую основные понятия, рассмотренные в данном параграфе.

Ответы: Представление чисел в компьютере

    9. а) 0,217934 10 3 ; б) 0,75321 10 5 ; в) 0,101 10 -2 .

§1.2 ПРЕДСТАВЛЕНИЕ ЧИСЕЛ В КОМПЬЮТЕРЕ
1.2.1. ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ
1.2.2. ПРЕДСТАВЛЕНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ

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

2. Как в памяти компьютера представляются целые положительные и отрицательные числа?

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

4. Представьте число 6310 в беззнаковом 8-разрядном формате.
00111111.

5. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком:
А) 01001100;
Б) 00010101.
А) +76. Б) +45.

6. Какие из чисел 4438 , 1010102 , 25610 можно сохранить в 8-разрядном формате?
4438 = 1001000112 – нельзя.
1010102 – можно.
25610 = 1000000002 – нельзя.

7. Запишите следующие числа в естественной форме:
А) 0,3800456·102 ;
Б) 0,245 ·10-3 ;
А) 1,256900Е+5;
Б) 9,569120Е-3.

8. Запишите число 2010, 010210 пятью различными способами в экспоненциальной форме.

9. Запишите следующие числа в экспоненциальной форме с нормализованной мантиссой – правильной дробью, имеющей после запятой цифру, отличную от нуля:
А) 217, 93410 ;
Б) 7532110;
В) 0,0010110.
А) 0,217934·103
Б) 0,75321·105
В) 0,101·10-2

10. Изобразите схему, связывающую основные понятия, рассмотренные в данном параграфе.

Главная особенность уравновешенных систем счисления – при выполнении арифметических операций не используется «правило знаков».

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

В последние десятилетия XX века группой математиков под руководством профессора в СССР были получены чрезвычайно интересные результаты, связанные с решением проблемы надежности хранения, обработки и передачи информации в компьютерных системах. Математиками было предложено использовать в качестве СС в компьютерах фибоначчиеву систему. Напомним, что алфавитом этой системы являются цифры 0 и 1, а базисом – последовательность чисел Фибоначчи: 1, 2, 3, 5, 8, 13, 21,

Основное преимущество кодов Фибоначчи для практических применений состоит в их «естественной» избыточности, которая может быть использована для целей контроля числовых преобразований. Эта избыточность проявляет себя в свойстве множественности представлений одного и того же числа. Например, число 30 в коде Фибоначчи имеет несколько представлений:

30 = 1001101f i b = 1010001 f i b = 111101 f i b .

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

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

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

При разработке элементной базы новой компьютерной техники основным операционным элементом стало устройство приведения кода Фибоначчи к минимальной форме. Это устройство реализовывалось через RS-триггеры и логические элементы «И» и «ИЛИ». Были созданы опытные образцы микросхемы, выполняющей следующие операции: запись и чтение данных, свертка, развертка, перемещение, поглощение, приведение к минимальной форме, суммирование, вычитание, реверсивный сдвиг, логическое умножение, логическое сложение и сложение по модулю 2.

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

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

И хотя создать Фибоначчи-компьютер по разным причинам пока так и не удалось, теоретические основы данного направления представляют несомненный интерес и могут стать источником новых идей не только в компьютерной области, но и в области математики. Особенно эффективным считается использование «фибоначчиевых» представлений в измерительной технике и цифровой обработке сигналов.

Использование системы остаточных классов. При разработке вычислительной техники перед математиками всегда стоит сложнейшая проблема – создание эффективных (их часто называют «предельными») алгоритмов выполнения арифметических операций в компьютере. В рамках решения этой проблемы учеными были придуманы новые системы счисления и разработаны компьютерные арифметики на их основе, которые позволяют построить вычислительные устройства, быстродействие и надежность которых превосходят вычислители, основанные на двоичной арифметике. К таким СС можно отнести непозиционную систему остаточных классов, некоторые иерархические системы счисления и др.

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

Система остаточных классов (СОК) – это непозиционная СС, числа в которой представляются остатками от деления на выбранную систему оснований P 1, P 2, ..., Р n и являются взаимно простыми числами. Операции сложения, вычитания и умножения над числами в СОК производятся независимо по каждому основанию, без переносов между разрядами.

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

В таких случаях в качестве оснований СОК берут величины, близкие к 2m (m – двоичная разрядность компьютера), например: 2m -1 – 1, 2m , 2m -1 + 1 и т. д. Начиная с середины прошлого столетия, ученые многих стран мира занимаются проблемой повышения скорости «неудобных» операций в СОК. Сама же СОК применяется в вычислительных системах достаточно широко уже несколько десятилетий.

4.5. Формы представления и преобразования информации

4.5.1. Кодирование и декодирование информации

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

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

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

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

Обратный переход к исходному представлению называется декодированием .

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

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

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

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

При кодировании информации ставятся следующие цели:

· удобство физической реализации;

· удобство восприятия;

· высокая скорость передачи и обработки;

· экономичность, т. е. уменьшение избыточности сообщения;

· надежность, т. е. защита от случайных искажений;

· сохранность, т. е. защита от нежелательного доступа к информации.

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

Для манипулирования информацией, представленной в ЭВМ, предназначено запоминающее устройство (или память) ЭВМ.

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

· электромагнитные реле (замкнуто/разомкнуто); широко использовались в конструкциях первых ЭВМ;

· участок поверхности магнитного носителя информации (намагничен/размагничен);

· участок поверхности лазерного диска (отражает/не отражает);

· триггер; может устойчиво находиться в одном из двух состояний; широко используется в оперативной памяти компьютера.

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

Вид информации

Двоичный код

Числовая

Текстовая

Графическая

Звуковая

Рис. 4.2. Двоичное кодирование информации

Информация в компьютере представлена в двоичном коде, алфавит которого состоит из двух цифр (0 и 1).

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

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

Важно, что каждая цифра машинного двоичного кода несет информацию в 1 бит. Таким образом, две цифры несут информацию в 2 бита, три цифры – в 3 бита и т. д. Количество информации в битах равно количеству цифр двоичного машинного кода.

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

4.5.2. Единицы измерения количества информации

За единицу количества информации принимается такое количество информации, которое содержит сообщение, уменьшающее неопределенность в два раза. Единица измерения количества информации бит (bit ) получила свое название от английского словосочетания Binary digi t – двоичная цифра.

Если вернуться к опыту с бросанием монеты, то здесь неопределенность как раз уменьшается в два раза и, следовательно, полученное количество информации равно 1 биту.

1 байт = 23 бит = 8 бит.

В информатике система образования кратных единиц измерения количества информации несколько отличается от принятых в большинстве наук. Традиционные метрические системы единиц, например Международная система единиц СИ, в качестве множителей кратных единиц используют коэффициент 10n , где n = 3, 6, 9 и т. д., что соответствует десятичным приставкам Кило (103), Мега (106), Гига (109) и т. д.

Компьютер оперирует числами не в десятичной, а в двоичной системе счисления, поэтому в кратных единицах измерения количества информации используется коэффициент 2n .

Так, кратные байту единицы измерения количества информации вводятся следующим образом:

1 Кбайт = 210 байт = 1024 байт;

1 Мбайт = 210 Кбайт = 1024 Кбайт;

1 Гбайт = 210 Мбайт = 1024 Мбайт.

4.5.3. Представление целых чисел со знаком и без знака

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

Введение специальных способов представления целых чисел оправдано тем, что достаточно часто в задачах, решаемых с помощью компьютера, многие действия сводятся к операциям над целыми числами. Например, в задачах экономического характера данными служат количества акций, сотрудников, деталей, транспортных средств и т. д., по своему смыслу являющиеся целыми числами. Целые числа используются и для обозначения даты и времени, и для нумерации различных объектов: элементов массивов, записей в базах данных , машинных адресов и т. п.

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

При беззнаковом представлении все разряды ячейки отводятся под само число. При представлении со знаком самый старший (левый) разряд отводится под знак числа, остальные разряды – под собственно число. Если число положительное, то в знаковый разряд помещается 0, если число отрицательное – 1. Очевидно, в ячейках одного и того же размера можно представить больший диапазон целых неотрицательных чисел в беззнаковом представлении, чем чисел со знаком. Например, в одном байте (8 разрядов) можно записать положительные числа от 0 до 255,
а со знаком – только до 127. Поэтому если известно заранее, что некоторая числовая величина всегда является неотрицательной, то выгоднее рассматривать ее как беззнаковую.

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

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

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

Количество разрядов

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

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

Представление числа в привычной для человека форме «знак-величина», при которой старший разряд ячейки отводится под знак, остальные k – 1 разрядов – под цифры числа, называется прямым кодом .

Например, прямые коды двоичных чисел 110012 и –110012 для восьмиразрядной ячейки равны и соответственно. Положительные целые числа представляются в компьютере с помощью прямого кода. Прямой код отрицательного целого числа отличается от прямого кода соответствующего положительного числа содержимым знакового разряда. Но вместо прямого кода для представления отрицательных целых чисел в компьютере используется дополнительный код.

Отметим, что максимальное положительное число, которое можно записать в знаковом представлении в k разрядах, равно 2k –1–1, что практически в два раза меньше максимального числа в беззнаковом представлении в тех же k разрядах.

Пример

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

Решение . Максимальное положительное число в 8 битах равно 127 (27 – 1), в 16 битах – 32– 1).

Пример

Число 53 = 1101012 в восьмиразрядном представлении имеет вид.

Это же число 53 в 16 разрядах будет записано следующим образом: .

В обоих случаях неважно, знаковое или беззнаковое представление при этом используется.

Пример

Для числа 200 = представление в 8 разрядах со знаком невозможно, т. к. максимальное допустимое число в таком представлении равно 127, а в беззнаковом восьмиразрядном представлении оно имеет вид.

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

В k -разрядной целочисленной компьютерной арифметике 2k ≡ 0.

Объяснить это можно тем, что двоичная запись числа 2k состоит из одной единицы и k нулей, а в ячейку из k разрядов может уместиться только k цифр, в данном случае только k нулей. В таком случае говорят, что значащая единица вышла за пределы разрядной сетки.

k -разрядный дополнительный код отрицательного числа т – это запись в k разрядах положительного числа 2k – |т| , где |т| – модуль отрицательного числа т , |т| < 2k– 1.

Разберемся, что и до чего дополнительный код дополняет. Дополнительный код отрицательного числа т – это дополнение модуля этого числа до 2 (или до нуля в k -разрядной арифметике):

(2k – |т |) + |т | = 2k ≡ 0.

Алгоритм получения дополнительного k -разрядного кода отрицательного числа:

1. Модуль числа представить прямым кодом в k двоичных разрядах.

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

3. К полученному обратному коду, трактуемому как k -разрядное неотрицательное двоичное число, прибавить единицу.

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

Пример

Получим дополнительный код числа –52 для восьми - и шестнадцатиразрядной ячеек. Для восьмиразрядной ячейки:

0011 0100 – прямой код числа |–52| = 52;

1100 1011 – обратный код числа –52;

1100 1100 – дополнительный код числа –52. Для шестнадцати-разрядной ячейки: 0000 0000 0– прямой код числа |–52|;
1111 1111 1100 1011 – обратный код числа –52; 1111 1111 1100 1100 – дополнительный код числа –52.

4.5.4. Представление символьной информации в ЭВМ

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

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

Таблица кодирования символов 8-битовыми числами, введенная Институтом стандартизации США и ставшая международным стандартом де-факто, называется ASCII (American Standard Code for Information Interchange).

Базовая часть таблицы ASCII закрепляет значения кодов с 0 по 127 и является общепринятой во всем мире, а расширенная относится к символам с номерами от 128 до 255.

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

В каждой стране используется своя расширенная часть таблицы ASCII (коды 128-255, или расширенные ASCII-коды), в которой находятся буквы национальных алфавитов, символы псевдографики и научные символы. В России для расширенной части таблицы используются кодировки КОИ-8, Windows-1251, ISO и др. Поэтому тексты, созданные в одной кодировке, не будут правильно отображаться в другой кодировке.

Трудности, связанные с созданием единой системы кодирования данных для всего мира, вызваны ограниченным набором кодов. Очевидно, что если кодировать символы не восьмиразрядными двоичными числами, а числами с большим количеством разрядов, то диапазон возможных значений кодов станет намного больше. Такая система, основанная на 16-разрядном кодировании символов, получила название универсальной – UNICODE. Шестнадцать разрядов позволяют обеспечить уникальные коды для 216 = 65536 различных символов – этого достаточно для размещения в одной таблице символов большинства языков планеты.

4.5.5. Представление чисел в формате с плавающей запятой

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

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

Любое вещественное число x , представленное в системе счисления с основанием N , можно записать в виде

x = ±mN ±p ,

где m – мантисса; p – порядок числа.

Если |m | < 1, то запись числа называется нормализованной слева.

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

а) в десятичной системе счисления

372,95 = 0,37295 · 103;

25 = 0,025 · 103 = 0,25 · 102;

0,0000015 = 0,15 · 10–5 = 0,015 · 10–4;

б) в двоичной системе счисления

11010,1101 = 0, · 26 = 0, · 25;

0,011011 = 0,11011 · 2-1;

0,1 = 0,1 · 20.

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

Число называют нормализованным справа , если после запятой в мантиссе стоит не нуль. Например, числа 0,0007610 и 0, представленные соответственно в виде 0,076 · 10–2 и 0,011 · 2–2 не являются нормализованными справа, а в виде 0,76 · 10–3 и 0,11 · 2–3 являются таковыми.

В настоящее время распространена (описана в стандарте IEEE 754) также другая форма записи – нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10
(не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно) (1 ≤ m N ). В такой форме любое число (кроме 0) записывается единственным образом. Недостаток заключается в том, что в таком виде невозможно представить 0, поэтому представление чисел в информатике предусматривает специальный признак (бит) для числа 0.

Так как старший разряд (целая часть числа) мантиссы двоичного числа (кроме 0) в нормализованном виде равен «1», то при записи мантиссы числа в ЭВМ старший разряд можно не записывать, что и используется для уменьшения объема хранимой информации или (при том же объёме) увеличения точности хранения числа.

0 " style="border-collapse:collapse;border:none">

Значащих цифр

Характеристика

на характеристику

Х = 27 + p – 1

Х = 210 + p – 1

Х = 214 + p – 1

Алгоритм формирования машинного представления вещественного числа в памяти ЭВМ состоит из следующих пунктов:

1. Число представляется в двоичном коде.

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

3. С учетом типа вещественного числа по таблице определяется характеристика.

4. В отведенное в памяти поле, в соответствии с типом числа, записываются мантисса, характеристика и знак числа. При этом необходимо отметить следующее:

· для чисел типа real характеристика хранится в младшем байте памяти, для чисел типа single, double, extended – в старших байтах;

· знак числа находится всегда в старшем бите старшего байта;

· мантисса всегда хранится в прямом коде;

· первый бит мантиссы (для нормализованного числа всегда 1) для чисел типа real, single, double не хранится (является скрытым). В числах типа extended все разряды мантиссы хранятся в памяти ЭВМ.

Формат машинного представления данных (на примере типа single) следующий:

мл. байт ст. байт

6– № разрядов памяти

m ....m m ....m х m ...m s х ...х

где s – знаковый разряд;

х – характеристика числа;

m – нормализованная мантисса.