ss-1.ppt
- Количество слайдов: 9
Представление чисел в компьютере автор: Хайманова Т. Я. май 2008 г.
Представление чисел в компьютере Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа хранятся в оперативной памяти в виде последовательностей нулей и единиц, т. е. в двоичном коде. Числа могут быть представлены в компьютере в одном из двух форматов: Ø в формате с фиксированной запятой (целые числа). Ø в формате с плавающей запятой (вещественные числа, т. е. конечные и бесконечные десятичные дроби).
Двоичные числа десят ичное двоичн ое восьмери чное шестнадцатери чное 0 0 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 1010 12 a 11 1011 13 b
Представление чисел в формате с фиксированной запятой Для хранения целых неотрицательных чисел отводится одна ячейка памяти (8 битов). Например, число A 2 = 10102 будет хранится в ячейке памяти следующим образом: 1 0 1 0 Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках хранятся единицы. Для n-разрядного представления оно будет равно: 27 + 26 + 25 + 24 + 23 + 22 + 21 + 20 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = = 255 Диапазон изменения целых неотрицательных чисел от 0 до 255.
Представление чисел в формате с фиксированной запятой Для хранения целых чисел со знаком отводится две ячейки памяти (16 битов), причем старший (левый) разряд отводится под знак числа (если число положительное, то в знаковый разряд записывается 0, если число отрицательное записывается 1). Представление в компьютере положительных чисел с использованием формата «знак-величина» называется прямым кодом числа. Например, число 200210 = 111110100102 будет представлено в 16 -ти разрядном представлении следующим образом: 0 0 0 1 1 1 0 0 1 A 10 = 215 – 1 = 3276710 – максимальное положительное число 0
Представление чисел в формате с фиксированной запятой Для представления отрицательных чисел используется дополнительный код. Дополнительный код позволяет заменить арифметическую операцию вычитания операцией сложения, что существенно упрощает работу процессора и увеличивает его быстродействие. Для получения дополнительного кода отрицательного числа можно использовать довольно простой алгоритм: 1. Модуль числа записать прямым кодом в n двоичных разрядах; 2. Получить обратный код числа, для этого значения всех бит инвертировать (все единицы заменить на нули и все нули заменить на единицы); 3. К полученному обратному коду прибавить единицу. Прямой код Обратный код | - 200210| 00000111110100102 инвертирование 11111000001011012 прибавление единицы Дополнительный код 11111000001011012 + 0000000012 11111000001011102
Пример. Выполнить арифметическое действие 300010 - 500010 в 16 -ти разрядном компьютерном представлении. Представим положительное число в прямом, а отрицательное число в дополнительном коде: Дес. число Прямой код 3000 000100111000 Дополнительный код 000010111000 - 5000 Обратный код 111011000111 Сложим прямой код положительного числа с дополнительным кодом отрицательного числа. Получим результат в дополнительном коде. Переведем полученный дополнительный код в десятичное число: 111011000111 + 000000001 1110110001111000 3000 - 5000 000010111000 + 1110110001111000 1111100000110000 1) Инвертируем дополнительный код: 0000011111001111 2) Прибавим к полученному коду 1 и получим модуль отрицательного числа: 0000011111001111 + 000000001 0000011111010000 3) Переведем в десятичное число и припишем знак отрицательного числа: -2000. 210 + 29 + 28 + 27 + 26 + 24 = 1024 + 512 + 256 + 128 + 64 + 16 = 2000
Представление чисел в формате с плавающей запятой Вещественные числа (конечные и бесконечные десятичные дроби) хранятся и обрабатываются в компьютере в формате с плавающей запятой. В этом случае положение запятой в записи числа может изменяться. Формат чисел с плавающей запятой базируется на экспоненциальной форме записи: A = m*qn, где m – мантисса числа q – основание системы счисления, n – порядок числа. Мантисса должна быть правильной дробью и иметь после запятой цифру, отличную от нуля. Пример. Преобразовать десятичное число 888, записанное в естественной форме, в экспоненциальную форму с нормализованной мантиссой. 888, 888 = 0, 888888× 103 Нормализованная мантисса m = 0, 888888, порядок n = 3.
Представление чисел в формате с плавающей запятой Число в форме с плавающей запятой занимает в памяти компьютера четыре (число обычной точности) или восемь байт (число двойной точности). При записи числа с плавающей запятой выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы. 0 1 1 1 1 1 1 1 1 знак и порядок знак и мантисса Максимальное значение порядка числа составит 11111112 = 12710 Максимальное значение числа обычной точности составит: 2127 = 1, 7014118346046923173168730371588× 1038 При сложении и вычитании чисел в формате с плавающей запятой сначала производится подготовительная операция выравнивания порядков. Пример. Произвести сложение чисел 0, 1× 23 и 0, 1× 25 в формате с плавающей запятой. 0, 1× 23 + 0, 1× 25 = 0, 001× 25 + 0, 100× 25 = 0, 101× 25 При умножении чисел в формате с плавающей запятой порядки складываются, а мантиссы перемножаются. При делении из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя.