|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Положительное число в прямом, обратном и дополнительном кодах не меняют свое изображениеКодирование числовой информации Все числовые данные хранятся в машине в двоичном виде, т.е. в виде последовательности нулей и единиц, однако формы хранения целых и действительных чисел различны. Для представления чисел в памяти ПК используются два формата: -формат с фиксированной точкой (запятой) целые числа; -формат с плавающей точкой (запятой) вещественные числа. Представление целых чисел Множество целых чисел, представленных в ЭВМ, ограничено. Диапазон значений зависит от размера ячеек памяти, используемых для их хранения. Для целых чисел существуют два представления: -беззнаковое; -со знаком. В К-разрядной ячейке может храниться 2к различных значений целых чисел. Диапазон значений целых беззнаковых чисел (только положительные): от 0 до 2к - 1 для 16-разрядной ячейки от 0 до 65535 для 8-разрядной ячейки от 0 до 255 Диапазон значений целых чисел со знаком (и отрицательные, и положительные в равном количестве): от -2к-1 до 2к-1-1 для 16-разрядной ячейки от -32768 до 32767 для 8-разрядной ячейки от -128 до 127 Чтобы получить внутреннее представление целого положительного числа N, хранящегося в К-разрядной ячейке, необходимо: 1. перевести число N в двоичную систему счисления; 2. полученный результат дополнить слева незначащими нулями до К разрядов. Пример: Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке. Решение: N=1607=110010001112. Внутреннее представление этого числа будет: 0000 0110 0100 0111. Шестнадцатеричная форма внутреннего представления числа: 0647. Для представления целого отрицательного числа используется дополнительный код. Дополнительным кодом двоичного числа X в N-разрядной ячейке является число, дополняющее его до значения 2N. Получение дополнительного кода: 1. получить внутреннее представление положительного числа N (прямой код); 2. получить обратный код этого числа заменой 0 на 1 или 1 на 0 (обратный код); 3. к полученному числу прибавить 1. Положительное число в прямом, обратном и дополнительном кодах не меняют свое изображение. Использование дополнительного кода позволяет заменить операцию вычитания на операцию сложения. A-B=A+(-B). Процессору достаточно уметь лишь складывать числа. Старший, К-й разряд во внутреннем представлении любого положительного числа равен 0, отрицательного числа равен 1. Поэтому этот разряд называется знаковым разрядом Пример: Получить внутреннее представление целого отрицательного числа - 1607. Решение: 1. Внутреннее представление положительного числа: 000 0110 0100 0111; 2. Обратный код: 1111 1001 1011 1000; 3. Дополнительный код: 1111 1001 1011 1001 - внутреннее двоичное представление числа. 16-ричная форма: F9B9. Представление вещественных чисел Вещественные числа представляются в ПК в форме с плавающей точкой. Этот формат использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления p в некоторой целой степени n которую называют порядком: R=m*pn Представление числа в форме с плавающей точкой неоднозначно. Например: 25.324=25324*101=0.0025324*104=2532.4*10-2 В ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в нормализованном представлении должна удовлетворять условию: 0.1p m<1p Иначе говоря, мантисса меньше 1 и первая значащая цифра - не 0. В памяти компьютера мантисса представляется как целое число, содержащее только значащие цифры (0 целых и запятая не хранится). Следовательно, внутреннее представление вещественного числа сводиться к представлению пары целых чисел: мантиссы и порядка. Например: 4-x байтовая ячейка памяти. В ячейке должна содержаться следующая информация о числе: - знак числа; - порядок; - значащие цифры мантиссы.
В старшем бите 1-го байта хранятся знак числа: 0 обозначает плюс, 1 - минус. Оставшиеся 7 бит 1-го байта содержат машинный порядок. В следующих трех байтах хранятся значащие цифры мантиссы (24 разряда). В семи двоичных разрядах помещаются двоичные числа в диапазоне от 0000000 до 1111111. Значит, машинный порядок изменяется в диапазоне от 0 до 127 (в десятичной системе счисления). Всего 128 значений. Порядок, очевидно, может быть как положительным так и отрицательным. Разумно эти 128 значений разделить поровну между положительным и отрицательным значениями порядка: от -64 до 63. Машинный порядок смещен относительно математического и имеет только положительные значения. Смещение выбирается так, чтобы минимальному математическому значению порядка соответствовал нуль. Связь между машинным порядком (Мр) и математическим (р) в рассматриваемом случае выражается формулой: Мр = р + 64 Полученная формула записана в десятичной системе. В двоичной системе формула имеет вид: Mp2=p2+10000002 Для записи внутреннего представления вещественного числа необходимо: 1) перевести модуль данного числа в двоичную систему счисления с 24 значащими цифрами; 2) нормализовать двоичное число; 3) найти машинный порядок в двоичной системе счисления; 4) учитывая знак числа, выписать его представление в 4-х байтовом машинном слове. Пример Записать внутреннее представление числа 250,1875 в форме с плавающей точкой. Решение 1) Приведем его в двоичную систему счисления с 24 значащими цифрами: 250.187510=11111010, 0011000000000000002. 2) Запишем в форме нормализованного двоичного числа с плавающей точкой: 0,111110100011000000000000*1021000. Здесь мантисса, основание системы счисления (210=102) и порядок (810=10002) записаны в двоичной системе. 3) Вычислим машинный порядок в двоичной системе счисления: Mp2= 1000 + 100 0000 =100 1000. 4) Запишем представление числа в 4-х байтовой ячейке памяти с учетом знака числа: Шестнадцатеричная форма: 48FA3000. Пример По шестнадцатеричной форме внутреннего представления числа в форме с плавающей точкой C9811000 восстановить само число. Решение 1) Перейдем к двоичному представлению числа в 4-х байтовой ячейке, заменив каждую шестнадцатеричную цифру 4-мя двоичными цифрами: 1100 1001 1000 0001 0001 0000 0000 0000 2) Заметим, что получен код отрицательного числа, поскольку в старшем разряде с номером 31 записана 1. Получим порядок числа: р=10010012 -10000002=10012=910. 3) Запишем в форме нормализованного двоичного числа с плавающей точкой с учетом знака числа: -0,100000010001000000000000 *21001 4) Число в двоичной системе счисления имеет вид: -100000010.0012. 5) Переведем число в десятичную систему счисления: -100000010.0012= -(1*28+1*21+1*2-3)= -258.12510 2. Кодирование нечисловой информации Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.) |