Контрольное задание № 1.
Перевод целых чисел в системах счисления.
1. Перевести число из двоичной, восьмеричной и шестнадцатеричной систем в десятичную систему счисления.
1.1. Выполнить перевод числа 101101 в десятичную систему счисления из двоичной.
1504131201102 = 1*25 + 0 * 24 + 1 * 23 +1 * 22 + 0 * 21 +1 * 20 = 32+0+8+4+0+1= 4510
Выполним проверку: Переведем число 45 из десятичной системы счисления в двоичную систему счисления:
1) 45: 2 = 22 (1), 22 >= 2;
2) 22: 2 = 11 (0), 11 >= 2;
3) 11: 2 = 5 (1), 5 >= 2;
4) 5: 2 = 2 (1), 2 >= 2;
5) 2: 2 = 1 (0), 1 < 2 – конец перевода.
Итак, 4510 = 1011012
1.2. Выполнить перевод числа 2312 из восьмеричной системы счисления в десятичную систему счисления.
233211208 = 2 * 83 +3 * 82 +1 * 81 +2 * 80 = 1024+192+8+2=122610
Выполним проверку: Переведем число 1226 из десятичной системы счисления в восьмеричную систему счисления:
1) 1226: 8 = 153 (2), 153 >= 8;
2) 153: 8 = 19(1), 19 >= 8;
3) 19: 8 = 2 (3), 2 < 8 – конец перевода.
Итак, 122610 = 23128
1.3. Выполнить перевод числа 1dc из шестнадцатеричной системы счисления в десятичную систему счисления.
12d1c016 = 1 * 162 + 13 * 161 +12 * 160 = 256+208+12 = 47616
Выполним проверку: Переведем число 476 из десятичной системы счисления в шестнадцатеричную систему счисления:
1) 476: 16 = 29 (12), 29 >= 16;
2) 29: 16 = 1 (13), 1 < 16 – конец перевода.
Итак, 47610 = 1dc16
2. Перевести число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления.
2.1. Выполнить перевод числа 891 в двоичную систему счисления из десятичной:
3) 891:2 = 445 (1), 445 >= 2;
4) 445:2 = 111 (0), 111 >= 2;
5) 111:2 = 55 (1), 55 >= 2;
6) 55:2 = 27 (1), 27 >= 2;
7) 27:2 = 13 (1), 13 >= 2;
8) 13:2 = 6 (1), 6 >= 2;
9) 6:2 = 3 (0), 3 >= 2;
10) 3:2 = 1 (1), 1 < 2 – конец перевода.
Итак, 98110 = 11011110112
Проверка: Выполним перевод числа 1101111011 из двоичной системы счисления в десятичную систему счисления:
191807161514130211102 = 1 * 29 + 1 * 28 + 0 * 27 + 1 * 26 + 1 * 25 + 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 512 + 256 + 64 + 32 + 16 + 8 + 2 + 1 = 89110
|
Итак, 11011110112 = 89110.
2.2. Выполнить перевод числа 891 в восьмеричную систему счисления из десятичной:
1) 891:8 = 111 (3), 111 >= 8;
2) 111:8 = 13 (7), 13 >= 8;
3) 13:8 = 1 (5), 1 < 8 – конец перевода.
Итак, 89110 = 51738
Проверка: Выполним перевод числа 1573 из восьмеричной системы счисления в десятичную систему счисления:
135271308 = 1 * 83 + 5 * 82 + 7 * 81 + 3 * 80 = 512 + 320 + 56 + 3 = 89110
Итак, 15738 = 89110.
2.3. Выполнить перевод числа 891 в шестнадцатеричную систему счисления из десятичной:
1) 891:16 = 55 (11), 55 >= 16;
2) 55:16 = 3 (7), 3 < 16 – конец перевода.
Итак, 89110 = 37b16.
Проверка: Выполним перевод числа 37b из шестнадцатеричной системы счисления в десятичную систему счисления:
3271b016 = 3 * 162 + 7 * 161 + 11 * 160 = 768 + 112 + 11 = 89110
Итак, 37b16 = 89110.
3. Перевести число из двоичной системы счисления в восьмеричную и шестнадцатеричную системы счисления.
3.1. Выполнить перевод числа 101101 из двоичной систему счисления в восьмеричную:
Разобьем исходную запись числа на триады двоичных разрядов:
101101 à 101 101
1012 à 58; 1012 à 58
Итак, 1011012 = 558.
Проверка: Выполним перевод числа 55 из восьмеричной системы счисления в десятичную систему счисления:
58 à 1012.
Итак, 558 = 1011012.
3.2. Выполнить перевод числа 101101 из двоичной системы счисления в шестнадцатеричную:
Разобьем исходную запись числа на тетрады двоичных разрядов:
101101 à 0010 1101
00102 à 216; 11012 à d16
Итак, 1011012 = 2d16
Проверка: Выполним перевод числа 2d из шестнадцатеричной системы счисления в двоичную систему счисления:
216 à 00102: d16 à 11012.
Итак, 2d16 = 001011012 = 1011012.
4. Перевести число из восьмеричной и шестнадцатеричной систем счисления в двоичную систему счисления.
|
4.1. Выполнить перевод числа 2312 из восьмеричной системы счисления в двоичную:
Каждой цифре в записи числа поставим в соответствие триаду двоичных цифр:
28 à 0102; 38 à 0112; 18 à 0012; 28 à 0102.
Итак, 23128 = 100110010102
Проверка: Выполним перевод числа 10011001010 из двоичной системы счисления в восьмеричную систему счисления:
100110010102 à 10 011 001 0102;
102 à 28; 0112 à 38; 0012 à 18; 0102 à 28.
Итак, 100110010102 = 23128.
4.2. Выполнить перевод числа 1dc из шестнадцатеричной системы счисления в двоичную:
Каждой цифре в записи числа поставим в соответствие тетраду двоичных цифр:
116 à 00012; d16 à 11012; c16 à 11002
Итак, 1dc16 = 1110111002
Проверка: Выполним перевод числа 111011100 из двоичной системы счисления в шестнадцатеричную систему счисления:
11101110016 à 1 1101 110016;
12 à 116; 11012 à d16; 11002 à c16.
Итак, 1110111002 = 1dc16.
Контрольное задание № 2.
Перевод дробных чисел в системах счисления.
Перевести из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления и обратно из полученных представлений в десятичную систему счисления. Перевод производить с точностью для шестнадцатеричной системы счисления – 2 знака, для восьмеричной системы счисления – 3 знака, для десятичной системы счисления – 5 знаков. Сравнить результаты, полученные после перевода в десятичную систему счисления с исходным числом. Определить относительную ошибку перевода.
1. Выполнить перевод числа 17.97 из десятичной системы счисления в двоичную систему счисления.
1.1. Переводим целую часть числа:
|
1) 17: 2 = 8 (1), 8 >= 2;
2) 8: 2 = 4 (0), 4 >= 2;
3) 4: 2 = 2 (0), 2 >= 2;
4) 2: 2 = 1 (0), 1< 2 – конец перевода.
Итак, 1710 = 100012
1.2. Переводим дробную часть числа:
1) 0.97 * 2 = 1.94 à 1;
2) 0.94 * 2 = 1.88 à 1;
3) 0.88 * 2 = 1.76 à 1;
4) 0.76 * 2 = 1.52 à 1;
5) 0.52 * 2 = 1.04 à 1.
Итак, 0.9710 = 0.111112
Таким образом, 17.9710 = 10001.111112
2. Выполним перевод числа 17.97 из десятичной системы счисления в восьмеричную систему счисления.
2.1. Переводим целую часть числа:
1) 17: 8 = 2 (1), 2 < 8 – конец перевода.
Итак, 1710 = 218
2.2. Переводим дробную часть числа:
1) 0.97 * 8 = 7.76 à 7;
2) 0.76 * 8 = 6.08 à 6;
3) 0.08 * 8 = 0.64 à 0;
Итак, 0.9710 = 0.7608
Таким образом, 17.9710 = 21.7608
3. Выполним перевод числа 17.97 из десятичной системы счисления в шестнадцатеричную систему счисления.
3.1. Переводим целую часть числа:
1) 17: 16 = 1 (1), 1 < 16 – конец перевода.
Итак, 1710 = 1116
3.2. Переводим целую часть числа:
1) 0.97 * 16 = 15.52 à 15;
2) 0.52 * 16 = 8.32 à 8;
Итак, 0.9710 = f816
Таким образом, 17.9710 = 11.f816
4. Выполним перевод числа 1001.11111 из двоичной системы счисления в десятичную систему счисления:
1403020110.1-11-21-31-41-5 2 = 1 * 24 + 0 * 23 + 0 * 22 + 0 * 21 +1 * 20 +1 * 2-1 +1 * 2-2 + 1 *2-3 + 1 * 2-4 + 1 * 2-5 = 16+0+0+0+1+0.5+0.25+0.125+0.0625+0.03125 = 17.9687510
N10 = 17.9710 = 10001.111112 → N10 = 10001.111112 = 17.9687510
Имеем: 17,97 ≠ 17,96875
5. Вычислим относительную ошибку E:
6. Выполним перевод числа 21.760 из восьмеричной системы счисления в десятичную систему счисления.
2110.7-16-20-38 = 2 * 81 + 1* 80 + 6 * 8-2 + 0.8-3 = 16 + 1 + 0.875 + 0.09375 + 0 = 17.9687510
N10 = 17.9710 = 21.760508 = 17.9687510
Имеем: 17.97 ≠ 17.96875
7. Вычислим относительную ошибку E:
8. Выполним перевод числа 11.f8 из шестнадцатиричной системы счисления в десятичную систему счисления
1110.f-18-216 = 1 * 161 + 1*160 + 15 * 16 –1 + 8*16-2 = 16 + 1 + 0.9375 + 0.03125 = 17.9687510
N10 = 17.97 = 11.f851e16 → N10 = 11.f851e16 = 17.9687510
Имеем: 17.97 ≠ 17.96875
9. Вычислим относительную ошибку E:
Контрольное задание № 3
Представление чисел в памяти ЭВМ.
3.1. Представить числа в форматах хранение:
3.1.1. Целого двоичного числа без знаков.
3.1.2. Целого двоичного числа со знаком.
3.2. Определить десятичное числа, которые хранится в формате.
3.2.1. Восьмиразрядного целого двоичного числа без знака.
3.2.2. Восьмиразрядного целого двоичного числа со знаком.
3.3. Представить дробные числа в коротком формате хранения с плавающей точкой.
1. Представим числа 91 в формате хранения целого двоичного числа без знака.
1.1. Выполним перевод числа 91 из десятичной системы счисления в двоичную систему счисления:
1) 91:2=45(1), 45 >= 2;
2) 45:2=22(1), 22 >= 2;
3) 22:2=11(0), 11 >= 2;
4) 11:2=5(1), 5 >= 2;
5) 2:2=1(1), 2 >= 2;
6) 2:2=1(0), 1 < 2-конец перевода
Итак, 9110 = 10110112.
Проверка: Выполним перевод числа 1011011 из двоичной системы счисления в десятичную систему счисления:
160514130211102 = 1 * 26 + 0 * 25 + 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 64 + 16 + 8 + 2 + 1 = 9110.
Итак, 10110112 = 9110.
1.2. Полученное двоичное число 10110112 дополним слева нулями до разрядности, равной шестнадцати:
10110112 =00000000010110112.
Таким образом, число 91, представленное в формате хранения целого двоичного числа без знака будет иметь вид:
2. Представим число –91 в формате хранения целого двоичного числа со знаком.
2.1. Переведем абсолютное значение исходного числа в двоичную систему счисления:
1) 91:2=45(1), 45>=2;
2) 45:2=22(1), 22>=2;
3) 22:2=11(0), 11>=2;
4) 11:2=5(1), 5>=2;
5) 5:2=2(1), 2>=2;
6) 2:2=1(0), 1>2-конец перевода
Итак, 9110 = 10110112 .
2.2. Дополним слева нулями полученное двоичное число 1011011 до разрядности равной шестнадцати:
10110112 =00000000010110112 .
2.3. Найдем обратный код полученного числа 00000000010110110, заменив двоичные нули на единицы, а двоичные единицы –на двоичные нули:
0000000001011011→ 1111111110100100
2.4. Добавим к полученному двоичному числу 1111111110100100 двоичную единицу, по весу равную единице младшего разряда
+
0000000000000001
Таким образом, число -91 в памяти ЭВМ будет представляться кодом1111111110100101
3. Восстановим десятичное представление числа 11101101 хранимого в формате восьмиразрядного целого двоичного числа без знака.
Выполним перевод числа 11101101 из двоичной системы счисления в десятичную систему счисления
17161504131201102 = 1*27 + 1*26 + 1*25 + 0*24 + 1 * 23 + 1*22 + 0*21+1*20 = 128 + 64 + 32 + 0 + 8 + 4 + 0 + 1 = 23710
Таким образом, при переводе числа 111011012 в десятичную систему счисления получим число 23710.
Проверка: Выполним перевод числа 237 из десятичной системы счисления в двоичную систему счисления:
1) 237: 2 = 118 (1), 118 >=2;
2) 118: 2 = 59 (0), 59 >=2;
3) 59: 2 = 29 (1), 29 >=2;
4) 29: 2 = 14 (1), 14 >=2;
5) 14: 2 = 7 (0), 7 >=2;
6) 7: 2 = 3 (1), 3 >=2;
7) 3: 2 = 1 (1), 1<2-конец перевода.
Итак, 23710 = 111011012.
4. Восстановим десятичное представление числа 11101101 хранимого в формате восьмиразрядного целого числа со знаками
4.1. Найдем обратный код числа 11101101: Nобр = 00010010
4.2. Добавим к полученному числу единицу, по весу равную единице младшего разряда
+
00000001
Таким образом, в двоичной системе счисления положительная форма числа имеет вид:
Nпол2 = 0010011 = 10011
4.3 Переводим положительную форму числа из двоичной системы счисления в десятичную систему счисления:
Nпол = 10011 = N10 = 1*24 + 0*23 + 0*22 + 1*21 + 1*20 =16 + 0 + 0 + 2 + 1 = 1910
Nпол10 = 1910
4.4 Записываем отрицательное число в десятичной системе счисления:
N10 = -1910
5. Представим дробное число 43.13 в коротком формате хранения с плавающей точкой
5.1 Переведем число 43.13 из десятичной системы счисления в двоичную систему счисления
5.1.1 Переводим целую часть числа:
1) 43: 2 = 21 (1), 21 ≥ 2
2) 21: 2 = 10 (1), 10 ≥ 2
3) 10: 2 = 5 (0), 5 ≥ 2
4) 5: 2 = 2 (1), 2 ≥ 2
5) 2: 2 = 1 (0), 1 ≤ 2 – конец перевода
Итак, 4310 = 1010112
5.1.2 Переводим дробную часть числа. Количество дробных разрядов числа определяем по формуле m = 24 – n, где m – количество дробных разрядов числа, n – номер старшего разряда целой части числа m = 24 – 5 = 19
1) 0.13 * 2 = 0.26 à 0;
2) 0.26 * 2 = 0.52 à 0;
3) 0.52 * 2 = 1.04 à 1;
4) 0.04 * 2 = 0.08 à 0;
5) 0.08 * 2 = 0.16 à 0;
6) 0.16 * 2 = 0.32 à 0;
7) 0.32 * 2 = 0.64 à 0;
8) 0.64 * 2 = 1.28 à 1;
9) 0.28 * 2 = 0.56 à 0;
10) 0.56 * 2 = 1.12 à 1;
11) 0.12 * 2 = 0.24 à 0;
12) 0.24 * 2 = 0.48 à 0;
13) 0.48 * 2 = 0.96 à 0;
14) 0.96 * 2 = 1.92 à 1;
15) 0.92 * 2 = 1.84 à 1;
16) 0.84 * 2 = 1.68 à 1;
17) 0.68 * 2 = 1.36 à 1;
18) 0.36 * 2 = 0.72 à 0
19) 0.72 * 2 = 1.44 à 1.
Итак, 0.1310 = 0.00100001010001111012
Таким образом, 43.1310 = 101011.00100001010001111012.
Проверка: Выполним перевод числа 101011.0010000101000111101 из двоичной системы счисления в десятичную систему счисления:
150413021110.0-10-21-30-40-50-60-71-80-91-100-110-120-131-141-151-161-170-181-192 = 1 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 + 0 * 2-1 + 0 * 2-2 + 1 * 2-3 + 0 * 2-4 + 0 * 2-5 + 0 * 2-6 + 0 * 2-7 + 1 * 2-8 + 0 * 2-9 +1 * 2-10 + 0 * 2-11 + 0 * 2-12 + 0 * 2-13 + 1 * 2-14 + 1 * 2-15 + 1 * 2-16 + 1 * 2-17 + 0 * 2-18 + 1 * 2-19 = 32 + 8 + 2 + 1 + 0.125 + 0.00390625 + 0.0009765625 + 0.00006103515625 + 0.000030517578125 + 0.0000152587890625 + 0.00000762939453125 + 0.0000019073486328125 ≈ 43.13.
Итак, 101011.00100001010001111012 ≈ 43.1310.
5.2. Округлим число. Для этого к полученному числу прибавим двоичную единицу, по весу равную единице младшего разряда:
101011.0010000101000111101
+
0.0000000000000000001
101011.0010000101000111110
5.3. Отбросим младший разряд суммы. В результате будет получено число:
101011.0010000101000111112
5.4. Нормализуем число:
101011.0010000101000111112 = 1.010110010000101000111112 * 2510
5.5. Отбросим старший разряд:
1.010110010000101000111112 à 0.010110010000101000111112
5.6. Определим двоичный код порядка:
510 + 12710 = 13210 = 100001002
5.7. Определим знаковый разряд: знаковый разряд положительного числа равен 0.
5.8. Представление числа 43.13 в памяти ЭВМ имеет следующий вид:
Зн | Порядок | Мантисса | |||||||||||||||||||||||||||||||||||||||||||||
1 байт | 2 байт | 3 байт | 4 байт | ||||||||||||||||||||||||||||||||||||||||||||
с | f | ||||||||||||||||||||||||||||||||||||||||||||||