Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Задачи по информатике (2 штуки) (http://www.flasher.ru/forum/showthread.php?t=119442)

artemst 20.12.2008 21:18

Задачи по информатике (2 штуки)
 
Уважаемые флэшеры :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

Цитата:

Сообщение от __etc (Сообщение 785135)
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

Цитата:

Сообщение от artemst (Сообщение 785174)
как подсчитали кстати? :)

Теория
Общая
http://ru.wikipedia.org/wiki/%D0%A7%...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


Часовой пояс GMT +4, время: 20:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.