ПРЕДСТАВЛЕНИЕ ЧИСЕЛ В КОМПЬЮТЕРЕ
ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В КОМПЬЮТЕРЕ
Ключевые слова
- беззнаковое представление
- прямой код
- дополнительный код
- нормализованная запись
- мантисса
Представление целых чисел
Число в математике
Число в компьютере
0
0
1
1
0
0
0
1
1011111110100001
Количество цифр в записи числа может быть сколь угодно большим.
Количество цифр (раз-рядов) ограничено па-мятью, выделенной для его хранения.
У любого целого числа есть следующее и предыдущее число.
Размер памяти опре-деляет величину самого большого числа.
Представление целых чисел
1 байт
Что напечатает
программа?
Var x: byte;
Begin
x:=131;
x:=x*2;
write(x);
End .
?
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
=
0
0
0
0
0
0
1
0
=
0
0
0
0
0
0
0
=
2
0
0
0
0
0
=
4
0
0
0
0
=
0
8
0
0
=
0
16
0
0
=
0
32
0
64
0
=
=
128
0
*2
Решение
1
Правильный выбор памяти для данных – задача программиста.
4
Представление целых чисел
Решение :
Что напечатает данная программа?
Var x: byte;
Begin
0
x:=131;
1
x:=x*2;
0
write(x);
1
1
1
0
0
1
0
End .
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
Значение байта любое
1
1
1
1
0
1
131=2 7 +2 1 +2 0
0
Сдвиг влево
Вывод: 6 (6=2 2 +2 1 )
Ответ : 6
При каком самом большом значении целой переменной x эта программа выведет правильный ответ?
?
Ответ
Ответ: 127
5
Представление целых чисел
Беззнаковое представление можно использовать только для неотрицательных целых чисел.
Количество разрядов
Диапазон чисел
8
[0; 255]
16
[0; 65 535]
32
[0; 4 294 967 295]
64
[0; 18 446 744 073 709 551 615]
Способ представления целых чисел обеспечивает:
- эффективное расходование памяти
- повышение быстродействия
- повышение точности вычислений за счёт введения операции деления нацело с остатком
Представление целых чисел
Представление числа в привычной для человека форме «знак – величина», при которой старший разряд ячейки отводится под знак, а остальные разряды — под цифры числа, называется прямым кодом .
!
1
0
1
+
1
-
88
88
0
0
1
1
1
1
0
0
0
0
0
0
Работа с числами в прямом коде требует особых алгоритмов:
- для действия «вычитание»;
- для особой обработки знакового разряда.
В прямом коде можно хранить числа, но работа с ними требует более сложной архитектуры центрального процессора.
Количество разрядов
8
Диапазон чисел
16
[-128; 127]
32
[-32 768; 32 767]
64
[-2 147 483 648; 2 147 483 647]
[-9 223 372 036 854 775 808;
9 223 372 036 854 775 807]
Дополнительный код числа
Сумма отрицательного числа и его модуля равна 0.
Например:
Выделим под значение один байт памяти компьютера .
1
1
?
?
0
0
0
0
0
?
?
0
?
?
1
0
1
0
0
1
?
0
?
1
?
?
0
0
0
0
0
0
0
?
0
?
?
?
0
0
0
0
0
0
?
?
0
0
0
0
+
Сколько надо прибавить, чтобы получить 0?
Сколько надо прибавить, чтобы получить 2 8 ?
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-
-
Отрицательное число
Дополнительный код
Представление целых чисел
Дополнительный n -разрядный код отрицательного числа равен 2 n - .
n разрядов
2 n
2 n
1
1
2 n -1
2 n -1
0
0
0
(2 n -1)-
1
1
0
1
1
0
0
0
0
1
0
1
(2 n -1 ) - +1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
+
+
0
1
1
0
0
0
Алгоритм
-
- Записать прямой n- разрядный код
- Инвертировать
- Прибавить 1
Найдите n отличий
Дополнительный n- разрядный код 2 n -
Алгоритм
Представление целых чисел
- Записать прямой n- разрядный код
- Инвертировать
- Прибавить 1
Определить восьмиразрядный дополнительный код числа -24.
Решение:
24=16+8=11000 2
8 разрядов
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
+
1
0
1
0
0
Ответ: 11101000
Представление целых чисел
Определить значение по восьми-разрядному коду .
1
0
0
1
1
0
0
0
Решение:
В старшем разряде 1 , значит число меньше 0 .
- Вычесть 1 из двоичного числа Инвертировать
- Вычесть 1 из двоичного числа
- Инвертировать
Обратный алгоритм
Прямой алгоритм
- Прибавить 1 к двоичному числу
- Прибавить 1 к двоичному числу
Перевести в 10-ую систему счисления
Ответ: 104
Представление вещественных чисел
Экспоненциальная
форма
вещественного
числа
порядок числа
основание
системы счисления
мантисса
Число в
Число в
компьютере
математике
Непрерывно
Непрерывно
Бесконечно
Бесконечно
Не ограничено
Не ограничено
Представление вещественных чисел
Нормализованная запись вещественного числа – это запись в виде , где – целое число, – система счисления, – дробь, целая часть которой содержит одну значащую цифру, т. е. 1 ≤
!
Знак мантиссы
Мантисса
Знак порядка
Порядок
Самое главное
В математике множество целых чисел дискретно, бесконечно и не ограничено. Компьютерное представление целых чисел дискретно, конечно и ограничено. Для компьютерного представления целых чисел используется 8, 16, 32 или 64 разряда. Для записи знака выделен один знаковый разряд.
В математике множество вещественных чисел непрерывно, бесконечно и не ограничено. Компьютерное представление вещественных чисел дискретно, конечно и ограничено. Вещественные числа в компьютере представлены нормализованной записью , где – целое число, – дробь, целая часть которой содержит одну значащую цифру (1 ≤
Вопросы и задания
- Почему множество целых чисел, представимых в памяти компьютера, дискретно, конечно и ограничено?:
- Какие из чисел можно сохранить в однобайтном знаковом формате?
200 8
-100 10
-55 10
Ответ
-200 8
93 10
93 16
- Представить числа в однобайтовом беззнаковом формате:
43 16 =
11101 2 =
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
Ответ
Вопросы и задания
- Запишите числа в прямом однобайтном коде:
58 16 =
-43 16 =
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
-100 10 =
100 8 =
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
Ответ
- Какие числа представлены в нормализованной записи?
-12,145∙10 3
1,2145∙10 0
Ответ
-1,2145∙10 3
-0,2145∙10 3
Вопросы и задания
- Представьте дополнительные коды чисел в восьмираз-рядном формате:
-73=
-32=
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
-56=
1
1
0
0
1
0
0
0
Ответ
- Определить десятичное число по дополнительному коду:
-63=
-118=
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
Ответ
14=
0
0
0
0
1
1
1
0
- Переменная A – целое неотрицательное число, занимающее в памяти 4 байта. Какую самую большую степень числа 4 можно вычислить?
Решение
Вопросы и задания
- Переменная A – целое неотрицательное число, занимающее в памяти 4 байта. Какую самую большую степень числа 4 можно вычислить?
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
4 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
4 1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4 15
Решение :
4 байта = 32 бита.
Единица в старшем разряде соответствует числу 2 31 .
2 31 = 2 ∙ 2 15∙2 = 2 ∙ 4 15
Ответ: 15