Кодирование чисел
Числа
349.50K
Category: informaticsinformatics

4 кодирование чисел — короткая

1. Кодирование чисел

1
Кодирование чисел
0011 0010 1010 1101 0001 0100 1011
2
4

2.

!!! Представление чисел в
компьютере
0011 0010 1010 1101 0001 0100 1011
Единой оптимальной для всех чисел формы
представления не существует.
1
2
4
Все множество чисел разделяется на типы, каждый из
которых имеет свою собственную форму
представления.

3. Числа

0011 0010 1010 1101 0001 0100 1011
Целые
(формат с
фиксированной запятой)
1
2
4
Вещественные
(формат с
плавающей запятой)

4.

Целые числа
0011 0010 1010 1101 0001 0100 1011
Целые числа в компьютере хранятся в памяти в формате
с фиксированной запятой или фиксированной
точкой.
В этом случае каждому разряду ячейки памяти
соответствует всегда один и тот же разряд числа, а
запятая находится справа после младшего разряда, т.е.
вне разрядной сетки.
Целые положительные числа в диапазоне от 0 до 255
могут быть представлены в двоичном коде с помощью
перевода в двоичную систему счисления. В памяти
компьютера для такого представления потребуется
один байт.
1
2
4

5.

Представление целых положительных чисел.
0011 0010 1010 1101 0001 0100 1011
Алгоритм получения внутреннего
представления целого положительного числа N,
хранящегося в k разрядном машинном слове:
1
2
4
1. Перевести число N в двоичную систему
счисления.
2. Полученный результат дополнить слева
незначащими нулями до k разрядов.

6.

Прямой код числа.
При представлении целых положительных и
отрицательных
чисел
0011
0010 1010 1101 0001
0100для
1011кодирования знака
используется отдельный, обычно старший, бит.
С помощью нуля отображается знак плюс, а единицы минус.
1
2
4
Оставшиеся семь бит используются для представления
цифр, что позволяет закодировать с помощью одного
байта целые числа в интервале от -127 до +127.
Описанный способ представления получил название
прямого кода.

7.

Алгоритм
№2
Получение
внутреннего
представления целого числа со знаком,
в 0100
k 1011
разрядном машинном слове
0011хранящегося
0010 1010 1101 0001
(запись числа в прямом коде):
2
• Перевести число N в двоичную систему
счисления.
• Полученный
результат
дополнить
слева
незначащими нулями до k-1 разрядов.
• Записать в самый левый (старший) разряд
информацию о знаке числа: знак “плюс” кодируется
нулем, а “минус” — единицей.
1
4

8.

Недостатком прямого кода является неоднозначность
представления числа ноль (числу ноль соответствуют
два кода 0000 0000 и 1000 0000).
0011 0010 1010 1101 0001 0100 1011
Эта неоднозначность приводит к усложнению
арифметики и требует соответствующего решения на
аппаратном уровне.
1
2
4
Этот недостаток устраняется с помощью
использования дополнительного кода.

9.

В компьютерной технике применяются три формы
записи (кодирования) целых чисел со знаком:
0011 0010 1010 1101 0001 0100 1011
•прямой код (в формате «знак-величина»),
1
2
•обратный код (получается инвертированием всех
цифр двоичного кода абсолютной величины числа,
включая разряд знака: нули заменяются единицами, а
единицы — нулями,
4
•дополнительный код (получается образованием
обратного кода с последующим прибавлением единицы
к его младшему разряду).

10.

Для представления отрицательных чисел используется
0011 0010 1010 1101 0001 0100 1011
дополнительный код.
2
Дополнительный код позволяет заменить
арифметическую операцию вычитания операцией
сложения, что существенно упрощает работу
процессора и увеличивает его быстродействие.
1
4

11.

Положительные числа в прямом, обратном и
дополнительном кодах изображаются одинаково —
двоичными кодами с цифрой 0 в знаковом
0011 0010 1010 1101 0001 0100 1011
разряде.
1
2
4

12.

Отрицательные числа в прямом, обратном и
дополнительном кодах имеют разное изображение.
1. Прямой код. В знаковый разряд помещается цифра
0011 0010 1010 1101 0001 0100 1011
1, а в разряды цифровой части числа — двоичный код
его абсолютной величины. Например:
1
2
4

13.

2. Обратный код. Получается инвертированием всех
цифр двоичного кода абсолютной величины числа
(модуля
числа), включая разряд знака: нули заменяются
0011 0010 1010 1101 0001 0100 1011
единицами, а единицы — нулями. Например:
1
2
4

14.

0011 0010 1010 1101 0001 0100 1011
1
2
4
English     Русский Rules