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

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

Данный рисунок отражает Правило №1: Данные (и программы) в памяти компьютера хранятся в двоичном виде, т.е. в виде цепочек ноликов и единичек.

Правило №2: представление данных в компьютере дискретно.

Что такое дискретность?

Самый близкий ответ: «Отдельный»

Примечание: Дискретное множество состоит из отделенных друг от друга элементов. Например, песок дискретен, поскольку он состоит из отдельных песчинок. А вода или масло непрерывны (в рамках наших ощущений, поскольку отдельные молекулы мы все равно ощутить не можем)

Например, изображение строится в виде совокупности точек, т.е. дискретно.

Правило №3: множество представимых в памяти величин ограничено и конечно.

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

Целые числа в компьютере. (Формат с фиксированной запятой)

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

9

9

9

9

9

9

9

9

9

Самое большое по абсолютной величине отрицательное число:

9

9

9

9

9

9

9

9

9

Аналогично дело обстоит и в компьютере.

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

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

В десятичной системе счисления оно равно:

2 15 -1=32767

Здесь первый бит играет роль знака числа. Ноль - признак положительного числа. Самое большое по модулю отрицательное число равно -32768.

Как получить его внутреннее представление:

1) перевести число в 32768 в двоичную систему счисления, он равно
1000000000000000 - получили прямой код.

2) инвертировать этот двойчный код, т.е. заменить нули на единицы, а единицы на нули - получили обратный код .

0111111111111111

3) Прибавить единицу к этому двоичному числу, в результате получим:

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Единица в первом бите обозначает знак «минус».

(не нужно думать, что полученный код - это «минус ноль». Этот код представляет число -32768.)

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

Если под целое число в памяти компьютера отводится N бит, то диапазон значений целых чисел: [-2 N-1 -1, 2 N -1]

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

В этом формате самое маленькое число - ноль, а самое большое число для 16-разрядной ячейки:

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

В десятичной системе счисления это 2 16 - 1 = 65535, в два раза больше по модулю, чем в представлении со знаком.

Целые числа в компьютере. (Формат с плавающей запятой)

Самое большое число у разных калькуляторов может оказаться разным. У самого простого калькулятора - 999999999. Если прибавить к нему еще единицу, то калькулятор выдаст сообщение об ошибке. А на более «умном» калькуляторе прибавление единицы приведет к такому результату:

1

е

+

0

9

Данную запись на табло понимают так: 1 x10 9 .

Такой формат записи числа называется форматом с плавающей запятой .

1

е

+

0

9

мантисса

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

В компьютере числа могу и представляться как в формате с фиксированной запятой так и в формате с плавающей запятой.

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

При их написании вместо запятой принято писать точку . Так, например, число 5 - целое, а числа 5.1 и 5.0 - вещественные.

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

1.25*10 0 = 0.125*10 1 = 0.0125*10 2 = ... ,
или так:
12.5*10 -1 = 125.0*10 -2 = 1250.0*10 -3 = ... .

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

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

Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание - в десятичной системе.

Примеры нормализованного представления:

Десятичная система Двоичная система

753.15 = 0.75315*10 3 ; -101.01 = -0.10101*2 11 (порядок 11 2 = 3 10)

0.000034 = -0.34*10 -4 ; -0.000011 = 0.11*2 -100 (порядок -100 2 = -410)

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

В качестве примера приведем характеристики форматов вещественных чисел, используемых IBM-совместимыми персональными компьютерами:

Форматы вещественных чисел Размер в байтах Примерный диапазон абсолютных значений Количество значащих десятичных цифр
Одинарный 4 10 -45 ... 10 38 7 или 8
Вещественный 6 10 -39 ... 10 38 11 или 12
Двойной 8 10 -324 ... 10 308 15 или 16
Расширенный 10 10 -4932 ... 10 4932 19 или 20

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

При хранении числа с плавающей точкой отводятся разряды для мантиссы, порядка, знака числа и знака порядка:

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

1. Число 6.25 10 = 110.01 2 = 0,11001

  • 2 11:

2. Число -0.125 10 = -0.0012 = -0.1*2 -10 (отрицательный порядок записан в дополнительном коде):

| Планирование уроков на учебный год (ФГОС) | § 1.2. Представление чисел в компьютере

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

где:

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

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

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

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

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

Из приведённого выше примера видно, что положение запятой в записи числа может изменяться.

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

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

Пример:

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

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

0,11111111111111111111111 10 1111111

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

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

САМОЕ ГЛАВНОЕ

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

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

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

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

где:

m - мантисса числа;
q - основание системы счисления;
p - порядок числа.

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

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. Изобразите схему, связывающую основные понятия, рассмотренные в данном параграфе.

Тема: Представление чисел в компьютере. Формат с фиксированной и плавающей запятой. Прямой, обратный и дополнительный код.

Повторение: Перевод целых чисел в двоичную систему счисления:

13 10 = а 2 Аналогично:

13 10 =1101 2

1345 10 =10101000001 2


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

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

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

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

ячейка (8бит = 1байт)

машинным словом.

Ячейка памяти состоит из некоторого числа однородных элементов. Каждый элемент способен находиться в одном из двух состояний и служит для изображения одного из разрядов числа. Именно поэтому каждый элемент ячейки называют разрядом . Нумерацию разрядов в ячейке принято вести справа налево, самый правый разряд имеет порядковый номер 0. Это младший разряд ячейки памяти, старший разряд имеет порядковый номер (n-1) в n-разрядной ячейке памяти.

Содержимым любого разряда может быть либо 0, либо 1.

Содержимое ячейки памяти называется машинным словом. Ячейка памяти разделяется на разряды, в каждом из которых хранится разряд числа.

Например, самые современные персональные компьютеры являются 64-разрядным, то есть машинное слово и соответственно, ячейка памяти, состоит из 64 разрядов или битов .

Бит - минимальная единица измерения информации. Каждый бит может принимать значение 0 или 1. Битом также называют разряд ячейки памяти ЭВМ.

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

Байт (от английского byte – слог) – часть машинного слова, состоящая из 8 бит, обрабатываемая в ЭВМ как одно целое. На экране – ячейка памяти, состоящая из 8 разрядов – это байт. Младший разряд имеет порядковый номер 0, старший разряд – порядковый номер 7.

8 бит = 1 байт

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

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

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

Целые числа без знака обычно занимают в памяти один или два байта и принимают в однобайтовом формате значения от 00000000 2 до 11111111 2 , а в двухбайтовом формате - от 00000000 00000000 2 до 11111111 11111111 2 .

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

1101 2 10101000001 2

Разряд, отводимый под знак

(в этом случае +)

Недостающие до целого байта старшие разряды заполняются нулями.

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

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

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

    Представить число в двоичной системе

    Дополнить запись числа нулями до предпоследнего старшего разряда 8-ми разрядной или 16-ти разрядной ячейки

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

Пример: число 3 10 в прямом коде однобайтного формата будет представлено в виде:


ч исло -3 10 в прямом коде однобайтного формата имеет вид:


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

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

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

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

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

1. Найти прямой код числа (перевести число в двоичную систему счисления число без знака)

2. Получить обратный код. Поменять каждый ноль на единицу, а единицу на ноль (инвертировать число)

3. К обратному коду прибавить 1

Пример: Найдем дополнительный код десятичного числа – 47 в 16-ти разрядном формате.

    Найдем двоичную запись числа 47 (прямой код).

2. Инвертируем это число (обратный код). 3. Прибавим 1 к обратному коду и получим запись этого числа в оперативной памяти.

Важно!

Для положительных чисел прямой, обратный и дополнительный коды – это одно и тоже, т.е. прямой код. Положительные числа для представления в компьютере инвертировать не надо!

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

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

Практическая задание:

Задание 1. Записать прямой, обратный и дополнительный коды следующих десятичных чисел, используя 8 -разрядную ячейку:

64 10, - 120 10

Задание 2. Записать прямой, обратный и дополнительный коды следующие десятичные числа в 16-ти разрядной сетке

57 10 - 117 10 - 200 10