Просмотр содержимого документа
«Представление чисел в компьютере»
Представление чисел в компьютере
Представление чисел в формате с фиксированной запятой
- Для хранения целых неотрицательных чисел отводится одна ячейка памяти (8 бит).
- Минимальное число 00000000
- Число в n- разрядном представлении
2 n -1
- Максимальное число 2 8 -1=255 10
Хранение целых чисел со знаком
- Для хранения отводится 2 ячейки памяти (16 бит)
- Старший (левый) разряд отводится под знак.
- В положительном числе в знаковый разряд записывается 0
- В отрицательном числе 1
Прямой код числа
Это -представление в компьютере положительных чисел с использованием формата «знак – величина».
Пример: 2002 10 =11111010010 2
В 16-ти разрядном представлении
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
При представлении целых чисел в n -разрядном представлении со знаком максимальное положительное число
А=2 n -1 - 1
Упражнение 1
- Определить максимальное положительное число, которое может хранится в оперативной памяти в формате целое число со знаком .
Решение
А 10 =2 15 – 1 = 32767 10
Дополнительный код
- Используется для представления отрицательных чисел
- Позволяет заменить арифметическую операцию вычитания операцией сложения, что упрощает работу процессора и увеличивает его быстродействие.
- Дополнительный код отрицательного числа А, хранящегося в n – ячейках, равен 2 n - |A|
Упражнение 2
Записать дополнительный код отрицательного числа -2002 для 16 – разрядного компьютерного представления.
Решение
Проведем вычисления в соответствии с определением дополнительного кода.
2 16 =10000000000000000 2 =65536 10
2002 10 =0000011111010010 2 =2002 10
2 16 - |2002 10 |=1111100000101110 2 =63534 10
Проверка
Проведем проверку в 10-ой системе счисления:
Дополнительный код 63534 10 в сумме с модулем 2002 10 равно 65536 10 .
Алгоритм определения дополнительного кода числа
- Модуль числа записать прямым кодом в n - двоичных разрядах;
- Получить обратный код числа, для этого значения всех бит инвертировать;
- К полученному обратному коду добавит единицу.
Упражнение 3
Записать дополнительный код отрицательного числа -2002 для 16-разрядного компьютерного представления с использованием алгоритма.
Прямой код
| -2002 10 |
Обратный код
0000011111010010 2
Инвертирование
Прибавление 1
1111100000101101 2
Дополнительный код
1111100000101101 2
+0000000000000001 2
1111100000101110 2
Выполнить арифметическое действие
3000 10 – 5000 10 в 16-разрядном компьютерном представлении.
Представим положительное число в прямом, а отрицательное в обратном коде:
Десятичное число
Прямой код
3000
Обратный код
-5000
0000101110111000
Дополнительный код
0001001110001000
1110110001110111
1110110001110111
+0000000000000001
1110110001111000
Сложим прямой код положительного числа с дополнительным кодом отрицательного числа. Получим результат в дополнительном коде:
3000-5000
1111100000110000
Переведем полученный дополнительный код в десятичное число:
- Инвертируем дополнительный код:
0000011111001111;
2) Прибавим к полученному коду 1 и получим модуль отрицательного числа:
0000011111001111+0000000000000001=
0000011111010000
3) Переведем в десятичное число и припишем знак отрицательного числа: -2000
Представление чисел в формате с плавающей запятой.
- Вещественные числа хранятся и обрабатываются в компьютере в формате с плавающей запятой.
- Формат чисел с плавающей запятой базируется на экспоненциальной форме записи.
Экспоненциальная форма записи числа
A=m*q n ,
m- мантисса числа;
q – основание системы счисления;
n- порядок числа.
Мантисса отвечает условию:
1/n .
Это означает, что мантисса должна быть правильной дробью и иметь после запятой цифру отличную от 0.
Упражнение 5
Преобразуйте десятичное число 888,888 в экспоненциальную форму с нормализованной мантиссой.
Решение
m=0,888888
Порядок n=3
888,888=0,888888*10 3
Упражнение 6
Произвести сложение чисел
0,1*2 3 и 0,1*2 5
Решение
Произведем выравнивание порядков и сложение мантисс:
0,001*2 5
+
0,100*2 5
------------
0,101*2 5
Упражнение 7
Произвести умножение чисел 0,1*2 3 и 0,1*2 5 в формате с плавающей запятой.
Решение
0,1*0,1*2 (3+5) =0,01*2 8 =0,1*2 7