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

advertisement
Представление чисел
в компьютере
Представление чисел в
формате с
фиксированной запятой
• Для хранения целых неотрицательных
чисел отводится одна ячейка памяти (8
бит).
• Минимальное число 00000000
• Число в n-разрядном представлении
2n-1
• Максимальное число 28-1=25510
Хранение целых чисел
со знаком
• Для хранения отводится 2 ячейки
памяти (16 бит)
• Старший (левый) разряд отводится
под знак.
• В положительном числе в
знаковый разряд записывается 0
• В отрицательном числе 1
Прямой код числа
Это -представление в компьютере
положительных чисел с
использованием формата «знак –
величина».
Пример: 200210=111110100102
В 16-т и разрядном предст авлении
0 0 0
0
0
1
1
1
1
1
0
1
0
0
1
0
При представлении целых чисел в
n-разрядном представлении со
знаком максимальное
положительное число
А=2n-1 - 1
Упражнение 1
• Определить максимальное
положительное число, которое
может хранится в оперативной
памяти в формате целое число со
знаком.
Решение
А10=215 – 1 = 3276710
Дополнительный код
• Используется для представления
отрицательных чисел
• Позволяет заменить
арифметическую операцию
вычитания операцией сложения,
что упрощает работу процессора и
увеличивает его быстродействие.
• Дополнительный код
отрицательного числа А,
хранящегося в n – ячейках, равен
2n-|A|
Упражнение 2
Записать дополнительный код
отрицательного числа -2002 для
16 – разрядного компьютерного
представления.
Решение
Проведем вычисления в
соответствии с определением
дополнительного кода.
216=100000000000000002=6553610
200210=00000111110100102=200210
216 - |200210|=11111000001011102=6353410
Проверка
Проведем проверку в 10-ой
системе счисления:
Дополнительный код 6353410 в
сумме с модулем 200210 равно
6553610.
Алгоритм определения
дополнительного кода
числа
1. Модуль числа записать прямым
кодом в n- двоичных разрядах;
2. Получить обратный код числа,
для этого значения всех бит
инвертировать;
3. К полученному обратному коду
добавит единицу.
Упражнение 3
Записать дополнительный код
отрицательного числа -2002 для
16-разрядного компьютерного
представления с использованием
алгоритма.
Решение
Прямой код
|-200210|
00000111110100102
Обратный
код
Инвертирование
11111000001011012
Прибавление 1
11111000001011012
+00000000000000012
Дополнитель
ный код
11111000001011102
Упражнение 4
Выполнить арифметическое
действие
300010 – 500010 в 16-разрядном
компьютерном представлении.
Решение
Представим положительное число в
прямом, а отрицательное в обратном
коде:
Десятичное число
Прямой код
3000
0000101110111000
-5000
0001001110001000
Обратный код
Дополнительный код
1110110001110111
1110110001110111
+0000000000000001
1110110001111000
Сложим прямой код положительного
числа с дополнительным кодом
отрицательного числа. Получим
результат в дополнительном коде:
30005000
1111100000110000
Переведем полученный дополнительный код в
десятичное число:
1) Инвертируем дополнительный код:
0000011111001111;
2) Прибавим к полученному коду 1 и получим
модуль отрицательного числа:
0000011111001111+0000000000000001=
0000011111010000
3) Переведем в десятичное число и припишем
знак отрицательного числа: -2000
Представление чисел в
формате с плавающей
запятой.
• Вещественные числа хранятся и
обрабатываются в компьютере в
формате с плавающей запятой.
• Формат чисел с плавающей
запятой базируется на
экспоненциальной форме записи.
Экспоненциальная
форма записи числа
A=m*qn,
m- мантисса числа;
q – основание системы счисления;
n- порядок числа.
Мантисса отвечает условию:
1/n<=|m|<1.
Это означает, что мантисса должна быть
правильной дробью и иметь после запятой
цифру отличную от 0.
Упражнение 5
Преобразуйте десятичное число
888,888 в экспоненциальную
форму с нормализованной
мантиссой.
Решение
m=0,888888
Порядок n=3
888,888=0,888888*103
Упражнение 6
Произвести сложение чисел
0,1*23 и 0,1*25
Решение
Произведем выравнивание порядков
и сложение мантисс:
0,001*25
+
0,100*25
-----------0,101*25
Упражнение 7
Произвести умножение чисел
0,1*23 и 0,1*25 в формате с
плавающей запятой.
Решение
0,1*0,1*2(3+5)=0,01*28=0,1*27
Download