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

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 14.04.2010
Размер файла 74,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

План

1. Система счисления

2. Системы счисления, которые специалисты используют для общения с компьютером

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

4. Как компьютер выполняет арифметические действия над целыми числами

5. Как представляются в компьютере вещественные числа/

6. Как компьютер выполняет арифметические действия над нормализованными числами

1. Система счисления

Система счисления -- это способ записи чисел с помощью заданного набора специальных знаков (цифр).

Существуют позиционные и непозиционные системы счисления.

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

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

Сама же запись числа 757,7 означает сокращенную запись выражения

700 + 50 + 7 + 0,7 = 7*102 + 5*101 + 7*100 + 7*10-1 = 757,7.

Любая позиционная система счисления характеризуется своим основанием.

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

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

an-1 qn-1 + an-2 qn-2+ ... + a1 q1 + a0 q0 + a-1 q-1 + ... + a-m q-m,

где ai - цифры системы счисления; n и m - число целых и дробных разрядов, соответственно.

Пример.

2. Системы счисления, которые специалисты используют для общения с компьютером

Кроме десятичной широко используются системы с основанием, являющимся целой степенью числа 2, а именно:

· двоичная (используются цифры 0, 1);

· восьмеричная (используются цифры 0, 1, ..., 7);

· шестнадцатеричная (для первых целых чисел от нуля до девяти используются цифры 0, 1, ..., 9, а для следующих чисел -- от десяти до пятнадцати - в качестве цифр используются символы A, B, C, D, E, F).

Полезно запомнить запись в этих системах счисления первых двух десятков целых чисел:

10 - я

2 - я

8 - я

16 - я

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10 - я

2 - я

8 - я

16 - я

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

17

10001

21

11

18

10010

22

12

19

10011

23

13

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

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

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

Целые числа без знака обычно занимают в памяти один или два байта и принимают в однобайтовом формате значения от 000000002 до 111111112, а в двубайтовом формате - от

00000000 000000002 до 11111111 111111112.

Диапазоны значений целых чисел без знака

Формат числа в байтах

Запись с порядком

Обычная запись

1

2

0 … 28 - 1

0 … 216 - 1

0 … 255

0 … 65535

Пример.

Число 7210 = 1001000, в однобайтовом формате:

Номера разрядов 7 6 5 4 3 2 1 0

Биты числа

Пример.

Число 7210 в двубайтовом формате:

Номера разрядов 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Биты числа

Пример.

Число 65535 в двубайтовом формате:

Номера разрядов 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

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

Диапазоны значений целых чисел со знаком

Формат числа в байтах

Запись с порядком

Обычная запись

1

2

4

-27 … 27 - 1

- 215 … 215 - 1

-231 …231 - 1

-128 … 127

-32 768 … 32 767

-2 147 483 648 … 2 147 483 647

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

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

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

Пример.

Число 1|0 = 12:

Число 127]0 = 11111112

Знак числа «+»

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

1.Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа -- двоичный код его абсолютной величины.

Пример.

Прямой код числа -1 Прямой код числа -127

Знак числа «-»

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

Пример.

Число: -1. Число: -127.

Код модуля числа: 0 0000001. Код модуля числа: 0 1111111.

Обратный код числа: 1 1111110. Обратный код числа: 1 0000000.

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

Пример.

Дополнительный код числа --1:

Дополнительный код числа --12

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

4. Как компьютер выполняет арифметические действия над целыми числами

Сложение и вычитание. В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение уменьшаемого с обратным или дополнительным кодом вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.

При сложении обратных кодов чисел А и В имеют место четыре основных и два особых случая. Рассмотрим их.

Случай 1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю.

Пример.

Десятичная запись: Двоичные коды:

Получен правильный результат.

Случай 2. А положительное, В отрицательное и по абсолютной величине больше, чем А.

Пример.

Десятичная запись: Двоичные коды:

+ 3 + 0 0 0 0 0 0 1 1

- 10 1 1 1 1 0 1 0 1

- 7 1 1 1 1 1 0 0 0

Обратный код числа -10

Обратный код числа -7

Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = -7]0.

Случай 3. А положительное, В отрицательное и по абсолютной величине меньше, чем А.

Пример.

Десятичная запись: Двоичные коды:

Обратный код числа -3

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

Случай 4. А и В отрицательные.

Пример.

Десятичная запись: Двоичные коды:

Обратный код числа -3

Обратный код числа -7 Обратный код числа -10

Полученный первоначально неправильный результат (обратный код числа -1110 вместо обратного кода числа --10|0) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = -1010.

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

Случай 5. А и В положительные, сумма А и В больше либо равна 2n-1, где п -- количество разрядов формата чисел (для однобайтового формата п = 8, 2n-1 = 27 = 128).

Пример.

Десятичная запись: Двоичные коды:

Переполнение

Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (162]0= 10100010), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки.

Случай 6. А и В отрицательные, сумма абсолютных величин А и В больше либо равна 2n-1.

Пример.

Десятичная запись: Двоичные коды:

Обратный код числа --63

Обратный код числа - 95

Переполнение

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

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

Случай 1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода.

Случай 2. А положительное, В отрицательное и по абсолютной величине больше, чем А.

Пример.

Десятичная запись: Двоичные коды:

+ 3 + 0 0 0 0 0 0 1 1

- 10 1 1 1 1 0 1 0 1

- 7 1 1 1 1 1 0 0 0

Дополнительный код числа --10

Дополнительный код числа --7

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

1 0000110 + 1= 1 0000111 = - 710-

Случай 3. А положительное, В отрицательное и по абсолютной величине меньше, чем А.

Пример.

Десятичная запись: Двоичные коды:

Дополнительный код числа -3

перенос отбрасывается

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

Случай 4. А и В отрицательные.

Пример.

Десятичная запись: Двоичные коды:

+ - 3 + 1 1 1 1 1 1 0 1 Дополнительный код числа -3

- 7 1 1 1 1 1 0 0 1 Дополнительный код числа -7

- 10 1 1 1 1 0 1 1 0 Дополнительный код числа -10 перенос отбрасывается

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

Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.

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

Умножение и деление. Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число «нуль». В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции -- окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Умножим 1100112 на 1011012.

Пример.

Накапливающий сумматор: Множитель:

+ 0 0 0 0 0 0 0 0 0 0 0 0 101101

1 1 0 0 1 1

1 1 0 0 1 1 101100

+ 1 1 0 0 1 1 Сдвиг на две позиции влево

1 1 1 1 1 1 1 1 101000

+ 1 1 0 0 1 1 Сдвиг на одну позицию влево

1 0 1 0 0 1 0 1 1 1 100000

+ 1 1 0 0 1 1 Сдвиг на две позиции влево

1 0 0 0 1 1 1 1 0 1 1 1 000000

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

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

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

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

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

Пример.

Десятичное число 1.25 в этой форме можно представить так:

1.25 * 10° = 0.125 * 101 = 0.0125 * 102 = ... или так:

12.5 * 10-1 = 125.0 * 102 = 1250.0 * 10 -3 = ... .

Любое число N в системе счисления с основанием q можно записать в | виде N = М * qp, где М -- множитель, содержащий все цифры числа (мантисса), а р -- целое число, называемое порядком. Такой способ записи чисел называется представлением числа с плавающей точкой.

Если плавающая точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведенных под мантиссу, обеспечивается запись максимального количества значащих цифр числа, т. е, максимальная точность представления числа в машине. Из этого следует, что мантисса должна быть правильной дробью, у которой первая цифра после точки (запятой в обычной записи) отлична от нуля: 0.12 < М < 1. Если это требование выполнено, то число называется нормализованным. Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание -- в десятичной системе. I

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

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

753.15 = 0.75315- 103; -101.01 = -0.10101 * 211 (порядок 112= 310);

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

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

Здесь порядок n-разрядного нормализованного числа задается в так называемой смещённой форме: если для задания порядка выделено k разрядов, то к истинному значению порядка, представленного в дополнительном коде, прибавляют смещение, равное (2k-1--1). Например, порядок, принимающий значения в диапазоне от --128 до +127, представляется смещенным порядком, значения которого меняются от 0 до 255. Использование смещенной формы позволяет производить операции над порядками как над беззнаковыми числами, что упрощает операции сравнения, сложения и вычитания порядков, а также операцию сравнения самих нормализованных чисел.

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

Стандартные форматы представления вещественных чисел:

1) Одинарный -- 32-разрядное нормализованное число со знаком, 8-разрядным смещенным порядком и 24-разрядной мантиссой (старший бит мантиссы, всегда равный 1, не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда).

2) Двойной -- 64-разрядное нормализованное число со знаком, 11-разрядным смещенным порядком и 53-разрядной мантиссой (старший бит мантиссы не хранится, и размер поля, выделенного для хранения мантиссы, составляет 52 разряда).

3) Расширенный -- 80-разрядное число со знаком, 15-разрядным смещенным порядком и 64-разрядной мантиссой. Позволяет хранить ненормализованные числа.

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

6. Как компьютер выполняет арифметические действия над нормализованными числами

К началу выполнения арифметического действия операнды операции помещаются в соответствующие регистры АЛУ.

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

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

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

Пример

Сложим двоичные нормализованные числа 0.10111 * 2-1 и 0.11011 * 210. Разность порядков слагаемых здесь равна трем, поэтому перед сложением мантисса первого числа сдвигается на три разряда вправо:

+ 0. 0 0 0 1 0 1 1 1 * 210

0. 1 1 0 1 1 * 210

0. 1 1 1 0 1 1 1 1 * 210

Пример

Выполним вычитание двоичных нормализованных чисел 0.10101 * 2'° и 0.11101-21. Разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:

Результат получился ненормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101 * 2°.

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

Пример

Выполним умножение двоичных нормализованных чисел:

(0.11101 * 2101) * (0.1001 * 211) = (0.11101 * 0.1001) * 2(101+11) = 0.100000101 * 21000.

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

Пример

Выполним деление двоичных нормализованных чисел:

0.1111 * 2100 : 0.101 * 211 = (0.1111 : 0.101) * 2(|00 - 11) = 1.1 * 21 = 0.11 * 210.

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


Подобные документы

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

    контрольная работа [824,4 K], добавлен 17.11.2010

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

    презентация [42,6 K], добавлен 14.06.2011

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

    презентация [16,3 K], добавлен 07.06.2011

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

    реферат [62,0 K], добавлен 13.01.2011

  • Арифметические операции с целыми числами. Сложение и вычитание в дополнительном коде. Представление чисел в формате с плавающей точкой. Особенности выполнения арифметических операций в соответствии с IEEE. Точность выполнения арифметических операций.

    контрольная работа [5,6 M], добавлен 19.05.2010

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

    курсовая работа [59,9 K], добавлен 31.05.2009

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

    контрольная работа [37,3 K], добавлен 13.02.2009

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

    лабораторная работа [142,3 K], добавлен 06.07.2009

  • Символы, целые, числа с плавающей точкой в языке Си. Машинное представление значений типа char, double, float, беззнаковых чисел. Представление целых чисел в позиционных системах счисления с произвольным основанием. Алгоритм перевода b-ичной записи.

    презентация [296,3 K], добавлен 05.01.2014

  • Управление файловой системой средствами Windows Explorer (Проводник). Цифровое представление вещественных чисел. Запуск MS Excel. Метод нисходящего проектирования. Характеристики плавающего числа двойной точности. Понятие компьютерной безопасности.

    реферат [69,0 K], добавлен 24.04.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.