Автор работы: Пользователь скрыл имя, 31 Мая 2013 в 12:15, контрольная работа
1. Зашифровать данный текст, используя таблицу ASCII-кодов.
2. Pаcшифрованное слово: Procedure.
3. Записать прямой код числа, интерпретируя его как восьмибитовое целое без знака:
а) 191(10) б) 210(10) в) 164(10)
4. Записать дополнительный код числа, интерпретируя его как восьмибитовое целое со знаком:
а) 67(10) б) -14(10) в) -84(10)
Вариант 18
Информатика
Стандартная таблица ASCII-кодов содержит 128 символов. В нее не входят буквы русского языка. Используем расширенную таблицу ASCII-кодов, состоящую из 256 символов. Для приведенных в слове букв 16-ричные коды символов равны:
Символ |
И |
н |
ф |
о |
р |
м |
а |
т |
и |
к |
а |
16-код |
88 |
AD |
E4 |
AE |
E0 |
AC |
A0 |
E2 |
A8 |
AA |
A0 |
Зашифрованное слово: 88 AD E4 AE E0 AC A0 E2 A8 AA A0
Используя стандартную таблицу ASCII-кодов, получим:
16-код |
50 |
72 |
6F |
63 |
65 |
64 |
75 |
72 |
65 |
Символ |
P |
r |
o |
c |
e |
d |
u |
r |
e |
Pаcшифрованное слово: Procedure
а) 191(10) б) 210(10) в) 164(10)
а) 67(10) б) -14(10) в) -84(10)
Дополнительный код положительного числа равен прямому коду этого числа.
Поэтому дополнительный код числа 67(10) = 64+0+0+0+0+2+1 = 1000011(2)
Дополнительный
код отрицательного числа m равен 2k-|m|,
где k - количество разрядов в ячейке.
Для получения дополнительного k-разрядного
кода отрицательного числа необходимо:
Представим модуль числа -14(10) в двоичной системе (восьмибитовое целое):
14(10) = 8+4+2+0 = 00001110
Инвертируем полученное число: 11110001
К полученному обратному коду прибавим единицу:
11110001
+
1
11110010
Ответ: 11110010 - число -14 в дополнительном коде.
Представим модуль числа -84(10) в двоичной системе (восьмибитовое целое):
84(10) = 64+0+16+0+4+0+0 = 01010100
Инвертируем полученное число: 10101011
К полученному обратному коду прибавим единицу:
10101011
+
1
101011100
Ответ: 101011100 - число -84 в дополнительном коде.
3а. Записать прямой код числа, интерпретируя его как шестнадцатибитовое целое без знака:
а) 21087(10) б) 25637(10)
Алгоритм получения прямого кода для шестнадцатибитового целого без знака аналогичен восьмибитовому.
а) 24788(10) б) -21728(10)
Алгоритм получения
Дополнительный код положительного
числа равен прямому коду этого числа,
поэтому дополнительный код числа 24788(10)
=16384+8192+0+0+0+0+0+128+64+
Дополнительный код
Представим модуль числа -21728(10) в
двоичной системе (шестнадцатибитовое
целое):
-21728(10) = 16384+0+4096+0+1024+0+0+128+
Инвертируем полученное число: 1010101100011111
К полученному обратному коду прибавим единицу:
1010101100011111
+
1
1010101100100000
Ответ: 1010101100100000 - число -21728 в дополнительном коде.
а) 0010010111000011 б) 1010011101101110
4. При получении числа по его дополнительному коду необходимо определить его знак по первой цифре кода – если эта цифра 0, то число положительное, если 1, то отрицательное. Если число окажется положительным, то переводим его код в десятичную систему счисления.
Число, дополнительный
код которого равен 0010010111000011, в десятичной
системе равно 8192+0+0+1024+0+256+128+64+0+
В случае отрицательного числа необходимо выполнить следующий алгоритм:
вычитаем из дополнительного кода 1;
1010011101101110
-
1
1010011101101101
инвертируем код; 0101100010010010
переводим в
десятичную систему счисления; 16384+0+4096+2048+0+0+0+128+0+
= -22674
полученное число записываем со знаком минус.
а) -704,375
Найдем двоичную запись модуля числа 704(10) =512+0+128+64+0+0+0+0+0+0 = = 1011000000(2)
Найдем двоичную запись дробной части 0,375(10) = 0+0,25+0,125 = 0,011
704,375 = 1011000000,011
Нормализуем число: 1011000000,011 = 1,011000000011*29
Найдем смещенный порядок в десятичном виде: 9+1023=1032(10)
Здесь 1023 – порядок для типа Double.
Переведем в двоичную систему: 1032(10) = 1024+0+0+0+0+0+0+8+0+0+0 = 10000001000
Результат оформим в табличной форме:
Знак |
Смещенный порядок |
Мантисса | |
Значение |
1 |
10000001000 |
011000000011000000000000000000 |
Разряд |
63 |
62..52 |
51..0 |
В шестнадцатиричной системе счисления число выглядит следующим образом:
С086030000000000
б) -653,375
Найдем двоичную запись модуля числа 653(10) =512+0+128+0+0+0+0+8+4+0 +1 = = 10100001101(2)
Найдем двоичную запись дробной части 0,375(10) = 0+0,25+0,125 = 0,011
653,375 = 10100001101,011
Нормализуем число: 10100001101,011= 1,0100001101011*210
Найдем смещенный порядок в десятичном виде: 10+1023=1033(10)
Переведем в двоичную систему: 1032(10) = 1024+0+0+0+0+0+0+8+0+0+1 = 10000001001
Результат оформим в табличной форме:
Знак |
Смещенный порядок |
Мантисса | |
Значение |
1 |
10000001001 |
010000110101100000000000000000 |
Разряд |
63 |
62..52 |
51..0 |
В шестнадцатиричной системе
С094358000000000
2) Дан код величины типа Double, записанный шестнадцатиричными цифрами. Преобразовать его в число.
а) 408С014000000000
Преобразуем шестнадцатиричный код в двоичное число в табличной форме:
Знак |
Смещенный порядок |
Мантисса | |
Значение |
0 |
10000001000 |
110000000001010000000000000000 |
Разряд |
63 |
62..52 |
51..0 |
Поскольку в 63 разряде стоит 0, то число положительное. Найдем порядок числа:
10000001000(2) =1024+0+0+0+0+0+0+8+0+0+0 = 1032(10)
1032 – 1023 = 9
Число имеет вид: 1, 11000000000101*29
= 1110000000,00101(2) или 512+256+128+0+0+0+0+0+0+0,125+
б)С0846С0000000000
Преобразуем шестнадцатиричный код в двоичное число в табличной форме:
Знак |
Смещенный порядок |
Мантисса | |
Значение |
1 |
10000001000 |
010011000000000000000000000000 |
Разряд |
63 |
62..52 |
51..0 |
Поскольку в 63 разряде стоит 1, то число отрицательное. Найдем порядок числа:
10000001000(2) =1024+0+0+0+0+0+0+8+0+0+0 = 1032(10)
1032 – 1023 = 9
Число имеет вид: 1,01001100000000*29 = 1010011000,00000(2) или 512+0+128+0+0+1+1+0+0+0 = 664,0
http://comp-science.hut.ru/