PDA

Просмотр полной версии : Задачи по информатике (2 штуки)


artemst
20.12.2008, 21:18
Уважаемые флэшеры :drinks:
Прошу помощи по решению задач по информатике за первый курс, из 10 задач сделал 8, а оставшиеся две не пойму как делать, ответы не сходятся, если кто знает плиз помогите..

1) Для написания слова "слово" была использована таблица кодировки ASCII, состоящая из 256 символов. Какова избытоность таблицы кодировки ASCII для написания этого слова?

2) Представить число 5,2 (в десятичной системе счисления) в нормализованном виде с одинарной точностью в разрядной сетке машины.

Плиииз :)

etc
20.12.2008, 22:52
ASCII в принципе не содержит кириллицы :D

artemst
20.12.2008, 22:59
Задачи составлены нашим преподавателем по информатике, ыхых... Суть думаю в том что сообщение состоит из 5 знаков и 4 символов... А как решить - хз, подобную решал, а это не могу :( зла не хватает ))

iNils
21.12.2008, 02:42
ASCII в принципе не содержит кириллицы :D
Ну... ASCII изначально была 7 битовая, то есть 128 символов и там не было кроме латиницы букв других языков не было. 8 битовая версия позволяет в верхнем диапазоне содержать национальные символы. И раз в задаче сказано 256 символов, значит о ней и речь. И как правильно заметил artemst, слово "слово" содержит 4 символа, которые могут описаться 2 битами, то есть 6 бит избыточны. Ну или 252 символа. Смотря от чего отталкиваться.

artemst
21.12.2008, 02:45
однако ответ в первой задаче - 0.75, как так, не понятно (

iNils
21.12.2008, 02:52
Наверно 0,75 не от символов, а от бит, так как 0,75 * 8 = 6.

artemst
21.12.2008, 03:10
Спасибо, похоже действительно так и есть.
А можете помоч оформить это всё в виде решения? Последовательность что-ли, поподробнее чтоб.. Мне это нужно оформить с формулами и всеми подсчётами, как положено, а я так и не понимаю до конца как вы нашли некоторые цифры.

iNils
21.12.2008, 03:39
А по второй задаче ответ 01000000101001100110011001100110?

В слове "слово" 5 букв и 4 символа "с", "л", "о" и "в". Для обозначения 4 символов достаточно 2 бита, так как они дают 4 состояния: 00, 01, 10 и 11. А для кодирования 256 символов ASCII нужно 8 бит. Следовательно 6 бит для нашей задачи избыточны, а это 75% или 0,75.

artemst
21.12.2008, 03:49
Спасибище, вы - супер-супер :)
Во второй ответ "0,101(0011)*(два в третьей степени) (32 р)" - думаю, вы назвали правильный ответ, а это сокращенный его вид. (как подсчитали кстати? :) )

iNils
21.12.2008, 04:31
как подсчитали кстати? :)Теория
Общая
http://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE_%D0%BE%D0%B4%D0%B8%D0%BD%D0%B0%D1%80%D0%BD%D0%BE%D0%B9_%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D0%B8
Подробная
http://www.rsdn.ru/article/alg/float.xml

Число положительное, значит первый бит 0.
Далее раскладываем целю и дробную часть

Целая часть
5 = 4 + 1 = 101 (двоичная система)
Далее нормализуем (что такое читаем в подробной теории) 1.01 * 2^2
2 (степень) + 127 (сдвиг экспоненты) = 129 = 10000001 (в двоичной системы)
Теперь у нас есть кроме знакак и экспонента и часть мантиссы (01 из 1.01, но 1. откидывается как описано в подробной теории) 0|10000001|01
Но в мантису одинарной точности входит 23 бита, а у нас заполнено только 2, остальные берем от дробной части нашего числа, то есть 0.2

Дробная часть
В двоичной системы дроби записываются как сумма числе 2^-n.
Например 0.625 = 0.5 + 0.125 = 2^-1 + 2^-3 = 1.101 (двоичная система)
В нашем случаи точно 0.2 мы таким способом не получим (поэтому в вашем ответ стоит период), но нам нужны только первые 21 бит (два бита мы уже заполнинили) итого
0.2 примерно равно 0.125 + 0.0625 + 0.0078125 + 0.00390625 + 0.00048828125 + 0.000244140625 + 0.000030517578125 + 0.0000152587890625 + 0.0000019073486328125 + 0.00000095367431640625 = 1.00110011001100110011 (в двоичной системе)

Теперь дописываем эти биты и получаем 0|10000001|0100110011001100110011, но в мантиссе вышло 22 бита, а не 23, поэтому дописываем 0 и выходит 0|10000001|01001100110011001100110

artemst
21.12.2008, 04:43
круто, спасибо ещё раз.