menu

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

Целые числа в компьютере

Правило № 4: в памяти компьютера числа хранятся в двоичной системе счисления*. С двоичной системой счисления вы знакомы из курса информатики 7-9 классов. Например, если под целое число выделяется ячейка памяти размером в 16 битов, то самое большое целое положительное число будет таким:

image

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

215 - 1 = 32 767. 



* Конечно, и «внутри калькулятора» числа представляются в двоичном виде. Однако мы в это вдаваться не будем, рассмотрев лишь внешнее представление. Пример с калькулятором нам нужен был только для иллюстрации проблемы ограниченности.

Здесь первый бит играет роль знака числа. Ноль — признак положительного числа. Самое большое по модулю отрицательное число равно -32 768. Напомним (это было в курсе информатики основной школы), как получить его внутреннее представление:

1) перевести число 32 768 в двоичную систему счисления; это легко, поскольку 32 768 = 215:

1000000000000000;

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

0111111111111111;

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

image

Единица в первом бите обозначает знак «минус». Не нужно думать, что полученный код — это «минус ноль». Этот код представляет число -32 768. Таковы правила машинного представления целых чисел. Данное представление называется дополнительным кодом.

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

[-2N-1, 2N~1 - 1],

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

Мы рассмотрели формат представления целых чисел со знаком, т. е. положительных и отрицательных. Бывает, что нужно работать только с положительными целыми числами. В таком случае используется формат представления целых чисел без знака. В этом формате самое маленькое число — ноль (все биты — нули), а самое большое число для 16-разрядной ячейки:

image

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

Из всего сказанного делаем вывод: целые числа в памяти компьютера — это дискретное, ограниченное и конечное множество.

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

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

image 

Вещественные числа в компьютере

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

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

Снова для примера возьмем калькулятор с десятиразрядным индикаторным табло. Экспериментально докажем дискретность представления вещественных чисел. Выполним на калькуляторе деление 1 на 3. Из математики вам известно, что 1/3 — это рациональная дробь, представление которой в виде десятичной дроби содержит бесконечное количество цифр: 0,3333333333... (3 в периоде). На табло калькулятора вы увидите:

image

Первый разряд зарезервирован под знак числа. После запятой сохраняется 8 цифр, а остальные не вмещаются в разрядную сетку (так это обычно называют). Значит, это не точное значение, равное 1/3, а его «урезанное» значение.

Следующее по величине число, которое помещается в разрядную сетку:

image

Оно больше предыдущего на 0,00000001. Это шаг числовой последовательности. Следовательно, два рассмотренных числа разделены между собой конечным отрезком. Очевидно, что предыдущее число такое:

image

Оно тоже отделено от своего «соседа справа» по числовой оси шагом 0,00000001. Отсюда делаем вывод: множество вещественных чисел, представимых в калькуляторе, дискретно, поскольку числа отделены друг от друга конечными отрезками.

А теперь выясним вот что: будет ли шаг в последовательности вещественных чисел на калькуляторе постоянной величиной (как у целых чисел)?

Вычислим выражение 100000/3. Получим:

image

Это число в 100 000 раз больше предыдущего и, очевидно, тоже приближенное. Легко понять, что следующее вещественное число, которое можно получить на табло калькулятора, будет больше данного на 0,0001. Шаг стал гораздо больше.

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

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

image

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

Ответим на вопрос: ограничено ли множество вещественных чисел в памяти компьютера? Если продолжать эксперименты с калькулятором, то ответ на этот вопрос будет таким: да, множество вещественных чисел в калькуляторе ограничено.

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

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

image

Данную запись на табло надо понимать так: 1 • 109.

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

Число, стоящее перед буквой «е», называется мантиссой, а стоящее после — порядком. «Умный калькулятор» перешел к представлению чисел в формате с плавающей запятой после того, как под формат с фиксированной запятой не стало хватать места на табло.

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

Но и для форматы с плавающей запятой тоже есть максимальное число. В нашем «подопытном» калькуляторе это число:

image

То есть 99999 • 1099. Самое большое по модулю отрицательное значение -99999 • 1099. Данные числа являются целыми, но именно они ограничивают представление любых чисел (целых и вещественных) в калькуляторе.

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

Рассмотрим пример: пусть под все число в компьютере выделяется 8 байтов — 64 бита, из них под порядок — 2 байта, под мантиссу — 6 байтов. Тогда диапазон вещественных чисел, в переводе в десятичную систему счисления, оказывается следующим:

±(5 • 10-324 - 1,7 • 10308).

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

image 

image 

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

1. Почему множество целых чисел, представимых в памяти компьютера, дискретно, конечно и ограничено? 
2. Определите диапазон целых чисел, хранящихся в 1 байте памяти в двух вариантах: со знаком и без знака. 
3. Получите внутреннее представление числа 157 в 8-разрядной ячейке памяти в формате со знаком. 
4. Получите внутреннее представление числа -157 в 8-разрядной ячейке памяти в формате со знаком. 
5. Почему множество действительных (вещественных) чисел, представимых в памяти компьютера, дискретно, конечно и ограничено? 
6. На какие две части делится число в формате с плавающей запятой? 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 Презентация «Представление информации в компьютере»

 Презентация «Представление информации в компьютере» (Open Document Format)

Ссылки на ресурсы ЕК ЦОР

Федеральный центр информационных образовательных ресурсов:

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

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

 где:

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

Например, число 472 ООО ООО может быть представлено так: 4,72 • 108, 47,2 • 107, 472,0 • 106 и т. д.

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

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

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

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

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

Пример:

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

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

0,11111111111111111111111 • 101111111

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

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

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

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

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

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

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

 где:

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

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

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

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

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

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

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

а) 01001100; 
б) 00010101.

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

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

а) 0,3800456 • 102
б) 0,245 • 10-3
в) 1,256900Е+5; 
г) 9,569120Е-3.

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

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

а) 217,93410
б) 7532110
в) 0,0010110.

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

Электронное приложение к уроку

 Презентация «Представление информации в компьютере»

 Презентация «Представление информации в компьютере» (Open Document Format)

Ссылки на ресурсы ЕК ЦОР

Федеральный центр информационных образовательных ресурсов:

liniya 

   
  Презентации, плакаты, текстовые файлы Вернуться к материалам урока Ресурсы ЭОР  

liniya 

 

Cкачать материалы урока