Категории: ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника |
Действия с машинными кодами чисел.Напомним, что машинные коды чисел призваны заменить отсутствующую в компьютере операцию вычитания (и деления тоже) на операцию сложения. Разберем примеры сложения машинных кодов различных чисел. Действия над числами, представленных в естественной форме (для компьютера - это целые числа) При сложении кодов целых чисел нужно учитывать следующие положения. 1. Числа хранятся в дополнительном коде. 2. В сумматоре числа складываются вместе со знаками, при этом образуется знак результата. 3. При сложении чисел с разными знаками единица переноса из знакового (старшего) разряда стирается. Пример. Дано А=254, В=175. Найти сумму чисел при разных знаках слагаемых в 16-разрядном формате. А = 25410 = FE16 = 111111102 В = 17510 = AF16 = 101011112 Машинные коды этих чисел с разными знаками представим в таблицах.
Выполним действия (во всех случаях выполняется сложение в дополнительном коде!). С1 = А + В
Проверка: С1 = 1101011012 = 28+27+25+23+22+20 = 256+128+32+8+4+1 = 42910 С2 = А - В = А + (-В)
Перенос из знакового разряда исключаем. Проверка: С2 = 10011112 = 26+23+22+21+20 = 64+8+4+2+1 = 7910 С3 = В - А = В + (-А)
Число С3 отрицательное в дополнительном коде. Проверка: получим прямой код числа С3.
С3 = -10011112 = -(26+23+22+21+20 )= -(64+8+4+2+1) = -7910 С4 = -А - В = (-А) + (-В)
Перенос из знакового разряда исключаем. Число С4 отрицательное в дополнительном коде. Проверка: получим прямой код числа С4.
С4 = -1101011012 =-( 28+27+25+23+22+20 )=-( 256+128+32+8+4+1) =- 42910 Действия над числами, представленными в нормальной форме. При сложении чисел, представленных в нормальной форме, необходимо учитывать: 1. Числа в нормальной форме хранятся в памяти в прямом коде с нормализованными мантиссами. 2. Сложение кодов чисел производится путем сложения мантисс только при одинаковых порядках (характеристиках) слагаемых. За общий выбирается наибольший порядок. Выравнивание порядков слагаемых осуществляется изменением мантиссы меньшего числа. 3. Результаты в прямом коде нормализуются. Пример. Дано А = 15 7/8 ; B = 5/16. Найти сумму чисел при разных знаках слагаемых. Вычисления с числами в нормальной форме удобнее выполнять в шестнадцатеричной системе счисления, разряды чисел 4 байта (32 двоичных разряда). A = F,E16; B = 0,516 1. Нормализация мантисс и определение характеристик: mA = 0,FE PxA = 40 + 1 = 41 mB = 0,5 PxB = 40 + 0 = 40 2. Выравнивание характеристик: PxB = 41 => mB = 0,05 3. Дополнительные коды мантисс отрицательных чисел. -mA = 1.00 - 0,FE = 0,02 -mB = 1.00 - 0,05 = 0,FB 4. Коды чисел: а) в шестнадцатеричном представлении A = 41FE0000 B = 41050000 -A = C1020000 -B = C1FB0000 б) в двоичном представлении A = 0 1000001 1111 1110 0000 0000 0000 0000 B = 0 1000001 0000 0101 0000 0000 0000 0000 -A = 1 1000001 1111 1110 0000 0000 0000 0000 -B = 1 1000001 0000 0101 0000 0000 0000 0000 Примечание: для записи отрицательных кодов чисел удобнее сначала записать код в двоичном представлении, затем преобразовать его в шестнадцатеричное. Важно: помните, что числа в нормальной форме представления хранятся в прямом коде! 4. Выполнение действий. C1 = A + B
Так как слагаемые с одинаковым знаком, то перенос единицы из старшего разряды мантиссы означает нарушение нормализации мантиссы влево. Нормализация мантиссы: mC1 = 0,103 PC1 = 41 + 1 = 42 Код числа C1 = 42103000 или 0 1000010 0001 0000 0011 0000 0000 0000 Проверка: С1 = 10,316 = 16 3/16 10 C2 = -A - B = - (A + B) Так как числа хранятся в прямом коде, нет необходимости выполнять двойные преобразования, можно взять C2 = -C1. Код числа С2 = 1 1000010 0001 0000 0011 0000 0000 0000 или C2103000 С2 = -10,316 = -16 3/16 10 C3 = A - B
Так как слагаемые с разными знаками, то единица переноса из старшего разряда является признаком положительного результата и стирается. Код числа С3 = 41F90000 или 0 1000001 1111 1001 0000 0000 0000 0000 С2 = F,916 = 15 9/19 10 C4 = B - A
Так как слагаемые с разными знаками и отсутствует перенос из старшего разряда мантиссы, то результат отрицательный в дополнительном коде и должен быть преобразован в прямой код. mC4 = 1,00 - 0,07 = 0,F9 PmC4 = 41 Код числа С4 = C1F90000 или 1 1000001 1111 1001 0000 0000 0000 0000 C4 = -F,916 = -15 9/19 10 Вопросы для контроля. 1. Что такое разрядная сетка или формат данных? 2. Какие формы записи чисел существуют в информатике? 3. Какие форматы представления чисел используются для различных форм записи? 4. Что такое машинные коды чисел? Для каких целей они вводятся в информатике? 5. Какова длина машинного слова для персональных компьютеров? 6. Как в компьютере учитываются знаки чисел? 7. Правила образования машинных кодов чисел? 8. В каком виде хранятся в компьютере целые числа (формат и форма)? 9. В каком виде хранятся в компьютере вещественны числа (формат и форма)? 10. Что следует помнить при сложении кодов чисел, представленных в естественной форме записи? 11. Каковы правила выполнения операций с числами, представленных в нормальной форме записи. Упражнение. 1. Привести следующие десятичные числа к нормальной форме записи: а) 234,13; б)0,0005; в)1234590,00001; г)1,0002; д)100. 2. Получить машинные коды для следующих десятичных чисел: а)123; б) -141; в)256,125; г)-321 3/8; д)89 15/16; е) 99; ж)2,5; з) 255 1/2 Представление целых чисел в компьютере.
Целые числа являются простейшими числовыми данными, с которыми оперирует ЭВМ. Для целых чисел существуют два представления: беззнаковое (только для неотрицательных целых чисел) и со знаком. Очевидно, что отрицательные числа можно представлять только в знаковом виде. Целые числа в компьютере хранятся в формате с фиксированной запятой.
Представление целых чисел в беззнаковых целых типах.
Представление целых чисел в знаковых целых типах.
Прямой код числа.
Дополнительный код числа.
Знаковый разряд Для компьютерного представления целых чисел обычно используется один, два или четыре байта, то есть ячейка памяти будет состоять из восьми, шестнадцати или тридцати двух разрядов соответственно.
12 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-07-22 lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда... |