Арифметические операции в двоичной системе счисления
В двоичной системе счисления арифметические операции выполняются поразрядно с использованием таблиц:
двоичного сложения + 0 1 0 0 1 1 1 10 | двоичного вычитания - 0 1 1 1 0 10 0 1 | двоичного умножения ´ 0 1 0 0 0 1 0 1 |
Примеры выполнения заданий
1. Сложите два целых числа 2. | 2. Сложите два дробных числа |
3. Найдите произведение чисел | 4. Найдите частное чисел |
3. Найдите разность чисел | Проверка сложением: |
Арифметические операции в восьмеричной и шестнадцатеричной системах счисления
Примеры выполнения заданий
1 . Сложите два числа: 5028 ABC16 + 1468 + 6216 6508 B1E16 | 2 . Найдите разность чисел: 5028 ABC16 - 1468 - 6216 3348 A5A16 |
3 . Найдите произведение двух чисел: ´ 5028 ´ ABC16 1468 62116 3614 1578 + 1410 + 4068 502 ABC 1001148 ED7F816
|
Арифметические операции в позиционных нетрадиционных
системах счисления
Десятичную систему счисления используют при выполнении арифметических действий над числами в позиционных нетрадиционных системах счисления ввиду сложности вычислений.
Задания для самостоятельного выполнения
|
|
4. Решите уравнения:
0) 538 - x = 468 . x : 3E16 = 3216; | 1) 258 + x = 728; x : 178 = 208; | 2) x : 6416 = 2216; 738 + x = 1168; |
3) x - A216 = 2716 . x : 128 = 518; | 4) 7B16 + x = AF16; x : 218 = 158 | 5) x : 3316 = 6516; x - 148 = 428; |
6) x + A116 = B516; x : 568 = 128; | 7) 628 - x = 478; x : 9116 = А316; | 8) x : 238 = 778 C916 - x = 2716; |
9) x + 148 =428; x : 2216 = ЕЕ16; |
Тема 3. Представление целых чисел в памяти ПК
Элементарная ячейка памяти ЭВМ имеет длину 8 бит (байт). Каждый байт имеет свой номер (адрес). Наибольшую последовательность бит, которую ЭВМ может обрабатывать как единое целое, называют машиннымсловом. Длина машинного слова зависит от разрядности процессора и может быть равной 16, 32 битам и т.д.
Целые числа типа Integer лежат в диапазоне от –32768 (–215) до 32767 (215 – 1) и для их хранения отводится 2 байта. Длинное целое типа LongInt лежит в диапазоне от –231 до 231 – 1 и размещается в 4 байтах. Короткое целое типа Short Integer лежит в диапазоне от –27 до 27 – 1 и размещается в 1 байте и т.д.
Данные могут быть интерпретированы как числа со знаками, так и без знаков. В случае представления величины со знаком самый левый (старший) разряд указывает на положительное число, если содержит нуль, и на отрицательное, если - единицу. Разряды нумеруются справа налево, начиная с 0.
|
|
Прямой код целого числа может быть получен следующим образом: число переводится в двоичную систему счисления, а затем его двоичную запись слева дополняют таким количеством незначащих нулей, сколько требует тип данных, к которому принадлежит число. Для более компактной записи чаще используют шестнадцатеричный код.
Дополнительный код положительного числа совпадает с его прямым кодом, а целого отрицательного числа может быть получен по следующему алгоритму:
1) записать прямой код модуля числа;
2) инвертировать его (заменить 1 - нулями, нули - 1);
3) прибавить к инверсному коду единицу.
При получении числа по его дополнительному коду, прежде всего, необходимо определить его знак. Если число окажется положительным, то просто перевести его код в десятичную систему счисления, иначе необходимо выполнить следующий алгоритм:
1) вычесть из кода числа 1;
2) инвертировать код;
3) перевести в десятичную систему счисления. Полученное число записать со знаком минус.
Примеры выполнения заданий
1.Представьте числа 3710 и -3710 в прямом коде в формате integer , затем запишите в шестнадцатеричном коде.
Переведем число в двоичную систему счисления:
3710 = 1001012.
Занесем результат в разрядную сетку:
|
|
знак числа младший разряд
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
-3710 = -1001012.
Занесем результат в разрядную сетку:
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
Используем специальные приемы перевода D2 ® D16 , получаем: 3710 = 2516
2.Постройте дополнительный восьмиразрядный код для чисел
-12810, -12710 и -010, затем запишите в шестнадцатеричном коде.
Число | -128 | -127 | -0 |
Прямой код | 1000 0000 | 0111 1111 | 0000 0000 |
Инверсный код | 0111 1111 | 1000 0000 | 1111 1111 |
Дополнит. Код | 1000 0000 | 1000 0001 | 0000 0000 |
D 16 | 80 | 81 | 0 |
3.Укажите десятичные числа, имеющие следующее представление в дополнительном коде в формате integer :
а) 0000000000010111. Поскольку в старшем разряде записан нуль, то результат будет положительным. Это код числа 23.
б) 1111111111000000. Здесь записан код отрицательного числа. Исполняем алгоритм:
1) 11111111110000002 – 12 = 11111111101111112;
2) 00000000010000002;
3) 10000002 = 1× 26 = 6410. Ответ: -6410
Целочисленная арифметика в дополнительных кодах
в памяти компьютера
Примеры выполнения заданий
1. Вычислите, используя дополнительный код представления 73–27:
73 – 27 = 73 + (–27)= 4610
73 10 = 64 + 8 + 1 = 1 × 26 + 1 × 23 + 1 × 20 = 10010012
|
|
010010012 – в формате short integer ;
–27 10 = - (16 + 8 + 2 + 1) = - (1 × 24 + 1 × 23 + 1 × 21 + 1 × 20) = - 110112
Вычисление дополнительного кода числа - 110112:
1) 000110112 – в формате short integer ;
2) 111001002 – инвертированный код;
3) + 1 – прибавление 1;
4) 111001012 – результат.
Вычисление суммы чисел в дополнительном коде:
010010012
+ 111001012
1001011102
Проверка результата: учитывая формат short integer , отбрасываем старший разряд (переполнение разрядной сетки) и переводим в десятичное представление: 1011102 = 1 × 21 + 1 × 22 + 1 × 23 + 1 × 25 = 4610
2. Вычислите, используя дополнительный код представления –35 – 17:
–35 –17 = –35 + (–17)= - 5210
–35 10 = - (32 + 2 + 1) = - (1 × 25 + 1 × 21 + 1 × 20) = - 1000112
1) 001000112 – в формате short integer ;
2) 110111002 – инвертированный код;
3) + 1 – прибавление 1;
4) 110111012 – результат.
–17 10 = - (16 + 1) = - (1 × 24 + 1 × 20) = - 100012
1) 000100012 – в формате short integer ;
2) 111011102 – инвертированный код;
3) + 1 – прибавление 1;
4) 111011112 – результат.
Вычисление суммы чисел в дополнительном коде:
110111012
+ 111011112
1110011002
Проверка результата сложения, путем выполнения операций в обратном порядке:
1) 1110011002
– 1
1110010112 – вычитание 1;
2) 0001101002 – инвертированный код;
3) перевод в десятичное представление:
- 1101002 = - (1 × 22 + 1 × 24+ 1 × 25)= - 5210
Дата добавления: 2020-04-08; просмотров: 190; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!