Сколько битов используется для кодирования одного символа в кодировке cp1251?

13 ответов на вопрос “Сколько битов используется для кодирования одного символа в кодировке cp1251?”

  1. Tyler Ответить

    Сегодня мы поговорим с вами про то, откуда берутся кракозябры на сайте и в программах, какие кодировки текста существуют и какие из них следует использовать. Подробно рассмотрим историю их развития, начиная от базовой ASCII, а также ее расширенных версий CP866, KOI8-R, Windows 1251 и заканчивая современными кодировками консорциума Юникод UTF 16 и 8.
    Оглавление:
    ASCII — базовая кодировка текста для латиницы
    Расширенные версии Аски — кодировки CP866 и KOI8-R
    Windows 1251 — вариация ASCII и почему вылезают кракозябры
    Юникод (Unicode) — универсальные кодировки UTF 8, 16 и 32
    Кракозябры вместо русских букв — как исправить
    Кому-то эти сведения могут показаться излишними, но знали бы вы, сколько мне приходит вопросов именно касаемо вылезших кракозябров (не читаемого набора символов). Теперь у меня будет возможность отсылать всех к тексту этой статьи и самостоятельно отыскивать свои косяки. Ну что же, приготовьтесь впитывать информацию и постарайтесь следить за ходом повествования.

    ASCII — базовая кодировка текста для латиницы

    Развитие кодировок текстов происходило одновременно с формированием отрасли IT, и они за это время успели претерпеть достаточно много изменений. Исторически все начиналось с довольно-таки не благозвучной в русском произношении EBCDIC, которая позволяла кодировать буквы латинского алфавита, арабские цифры и знаки пунктуации с управляющими символами.
    Но все же отправной точкой для развития современных кодировок текстов стоит считать знаменитую ASCII (American Standard Code for Information Interchange, которая по-русски обычно произносится как «аски»). Она описывает первые 128 символов из наиболее часто используемых англоязычными пользователями — латинские буквы, арабские цифры и знаки препинания.
    Еще в эти 128 знаков, описанных в ASCII, попадали некоторые служебные символы навроде скобок, решеток, звездочек и т.п. Собственно, вы сами можете увидеть их:
    Именно эти 128 символов из первоначального вариант ASCII стали стандартом, и в любой другой кодировке вы их обязательно встретите и стоять они будут именно в таком порядке.
    Но дело в том, что с помощью одного байта информации можно закодировать не 128, а целых 256 различных значений (двойка в степени восемь равняется 256), поэтому вслед за базовой версией Аски появился целый ряд расширенных кодировок ASCII, в которых можно было кроме 128 основных знаков закодировать еще и символы национальной кодировки (например, русской).
    Тут, наверное, стоит еще немного сказать про системы счисления, которые используются при описании. Во-первых, как вы все знаете, компьютер работает только с числами в двоичной системе, а именно с нулями и единицами («булева алгебра», если кто проходил в институте или в школе). Один байт состоит из восьми бит, каждый из которых представляет из себя двойку в степени, начиная с нулевой, и до двойки в седьмой:

    Не трудно понять, что всех возможных комбинаций нулей и единиц в такой конструкции может быть только 256. Переводить число из двоичной системы в десятичную довольно просто. Нужно просто сложить все степени двойки, над которыми стоят единички.
    В нашем примере это получается 1 (2 в степени ноль) плюс 8 (два в степени 3), плюс 32 (двойка в пятой степени), плюс 64 (в шестой), плюс 128 (в седьмой). Итого получает 233 в десятичной системе счисления. Как видите, все очень просто.
    Но если вы присмотритесь к таблице с символами ASCII, то увидите, что они представлены в шестнадцатеричной кодировке. Например, «звездочка» соответствует в Аски шестнадцатеричному числу 2A. Наверное, вам известно, что в шестнадцатеричной системе счисления используются кроме арабских цифр еще и латинские буквы от A (означает десять) до F (означает пятнадцать).
    Ну так вот, для перевода двоичного числа в шестнадцатеричное прибегают к следующему простому и наглядному способу. Каждый байт информации разбивают на две части по четыре бита, как показано на приведенном выше скриншоте. Т.о. в каждой половинке байта двоичным кодом можно закодировать только шестнадцать значений (два в четвертой степени), что можно легко представить шестнадцатеричным числом.
    Причем, в левой половине байта считать степени нужно будет опять начиная с нулевой, а не так, как показано на скриншоте. В результате, путем нехитрых вычислений, мы получим, что на скриншоте закодировано число E9. Надеюсь, что ход моих рассуждений и разгадка данного ребуса вам оказались понятны. Ну, а теперь продолжим, собственно, говорить про кодировки текста.

    Расширенные версии Аски — кодировки CP866 и KOI8-R с псевдографикой

    Итак, мы с вами начали говорить про ASCII, которая являлась как бы отправной точкой для развития всех современных кодировок (Windows 1251, юникод, UTF 8).
    Изначально в нее было заложено только 128 знаков латинского алфавита, арабских цифр и еще чего-то там, но в расширенной версии появилась возможность использовать все 256 значений, которые можно закодировать в одном байте информации. Т.е. появилась возможность добавить в Аски символы букв своего языка.
    Тут нужно будет еще раз отвлечься, чтобы пояснить — зачем вообще нужны кодировки текстов и почему это так важно. Символы на экране вашего компьютера формируются на основе двух вещей — наборов векторных форм (представлений) всевозможных знаков (они находятся в файлах со шрифтами, которые установлены на вашем компьютере) и кода, который позволяет выдернуть из этого набора векторных форм (файла шрифта) именно тот символ, который нужно будет вставить в нужное место.
    Понятно, что за сами векторные формы отвечают шрифты, а вот за кодирование отвечает операционная система и используемые в ней программы. Т.е. любой текст на вашем компьютере будет представлять собой набор байтов, в каждом из которых закодирован один единственный символ этого самого текста.
    Программа, отображающая этот текст на экране (текстовый редактор, браузер и т.п.), при разборе кода считывает кодировку очередного знака и ищет соответствующую ему векторную форму в нужном файле шрифта, который подключен для отображения данного текстового документа. Все просто и банально.
    Значит, чтобы закодировать любой нужный нам символ (например, из национального алфавита), должно быть выполнено два условия — векторная форма этого знака должна быть в используемом шрифте и этот символ можно было бы закодировать в расширенных кодировках ASCII в один байт. Поэтому таких вариантов существует целая куча. Только лишь для кодирования символов русского языка существует несколько разновидностей расширенной Аски.
    Например, изначально появилась CP866, в которой была возможность использовать символы русского алфавита и она являлась расширенной версией ASCII.
    Т.е. ее верхняя часть полностью совпадала с базовой версией Аски (128 символов латиницы, цифр и еще всякой лабуды), которая представлена на приведенном чуть выше скриншоте, а вот уже нижняя часть таблицы с кодировкой CP866 имела указанный на скриншоте чуть ниже вид и позволяла закодировать еще 128 знаков (русские буквы и всякая там псевдографика):

    Видите, в правом столбце цифры начинаются с 8, т.к. числа с 0 до 7 относятся к базовой части ASCII (см. первый скриншот). Т.о. русская буква «М» в CP866 будет иметь код 9С (она находится на пересечении соответствующих строки с 9 и столбца с цифрой С в шестнадцатеричной системе счисления), который можно записать в одном байте информации, и при наличии подходящего шрифта с русскими символами эта буква без проблем отобразится в тексте.
    Откуда взялось такое количество псевдографики в CP866? Тут все дело в том, что эта кодировка для русского текста разрабатывалась еще в те мохнатые года, когда не было такого распространения графических операционных систем как сейчас. А в Досе, и подобных ей текстовых операционках, псевдографика позволяла хоть как-то разнообразить оформление текстов и поэтому ею изобилует CP866 и все другие ее ровесницы из разряда расширенных версий Аски.
    CP866 распространяла компания IBM, но кроме этого для символов русского языка были разработаны еще ряд кодировок, например, к этому же типу (расширенных ASCII) можно отнести KOI8-R:
    Принцип ее работы остался тот же самый, что и у описанной чуть ранее CP866 — каждый символ текста кодируется одним единственным байтом. На скриншоте показана вторая половина таблицы KOI8-R, т.к. первая половина полностью соответствует базовой Аски, которая показана на первом скриншоте в этой статье.
    Среди особенностей кодировки KOI8-R можно отметить то, что русские буквы в ее таблице идут не в алфавитном порядке, как это, например, сделали в CP866.
    Если посмотрите на самый первый скриншот (базовой части, которая входит во все расширенные кодировки), то заметите, что в KOI8-R русские буквы расположены в тех же ячейках таблицы, что и созвучные им буквы латинского алфавита из первой части таблицы. Это было сделано для удобства перехода с русских символов на латинские путем отбрасывания всего одного бита (два в седьмой степени или 128).

    Windows 1251 — современная версия ASCII и почему вылезают кракозябры

    Дальнейшее развитие кодировок текста было связано с тем, что набирали популярность графические операционные системы и необходимость использования псевдографики в них со временем пропала. В результате возникла целая группа, которая по своей сути по-прежнему являлись расширенными версиями Аски (один символ текста кодируется всего одним байтом информации), но уже без использования символов псевдографики.
    Они относились к так называемым ANSI кодировкам, которые были разработаны американским институтом стандартизации. В просторечии еще использовалось название кириллица для варианта с поддержкой русского языка. Примером такой может служить Windows 1251.
    Она выгодно отличалась от используемых ранее CP866 и KOI8-R тем, что место символов псевдографики в ней заняли недостающие символы русской типографики (окромя знака ударения), а также символы, используемые в близких к русскому славянских языках (украинскому, белорусскому и т.д.):
    Из-за такого обилия кодировок русского языка, у производителей шрифтов и производителей программного обеспечения постоянно возникала головная боль, а у нас с вам, уважаемые читатели, зачастую вылезали те самые пресловутые кракозябры, когда происходила путаница с используемой в тексте версией.
    Очень часто они вылезали при отправке и получении сообщений по электронной почте, что повлекло за собой создание очень сложных перекодировочных таблиц, которые, собственно, решить эту проблему в корне не смогли, и зачастую пользователи для переписки использовали транслит латинских букв, чтобы избежать пресловутых кракозябров при использовании русских кодировок подобных CP866, KOI8-R или Windows 1251.
    По сути, кракозябры, вылазящие вместо русского текста, были результатом некорректного использования кодировки данного языка, которая не соответствовала той, в которой было закодировано текстовое сообщение изначально.
    Допустим, если символы, закодированные с помощью CP866, попробовать отобразить, используя кодовую таблицу Windows 1251, то эти самые кракозябры (бессмысленный набор знаков) и вылезут, полностью заменив собой текст сообщения.
    Аналогичная ситуация очень часто возникает при создании и настройке сайтов, форумов или блогов, когда текст с русскими символами по ошибке сохраняется не в той кодировке, которая используется на сайте по умолчанию, или же не в том текстовом редакторе, который добавляет в код отсебятину не видимую невооруженным глазом.
    В конце концов такая ситуация с множеством кодировок и постоянно вылезающими кракозябрами многим надоела, появились предпосылки к созданию новой универсальной вариации, которая бы заменила собой все существующие и решила бы, наконец, на корню проблему с появлением не читаемых текстов. Кроме этого существовала проблема языков подобных китайскому, где символов языка было гораздо больше, чем 256.

    Юникод (Unicode) — универсальные кодировки UTF 8, 16 и 32

    Эти тысячи знаков языковой группы юго-восточной Азии никак невозможно было описать в одном байте информации, который выделялся для кодирования символов в расширенных версиях ASCII. В результате был создан консорциум под названием Юникод (Unicode — Unicode Consortium) при сотрудничестве многих лидеров IT индустрии (те, кто производит софт, кто кодирует железо, кто создает шрифты), которые были заинтересованы в появлении универсальной кодировки текста.
    Первой вариацией, вышедшей под эгидой консорциума Юникод, была UTF 32. Цифра в названии кодировки означает количество бит, которое используется для кодирования одного символа. 32 бита составляют 4 байта информации, которые понадобятся для кодирования одного единственного знака в новой универсальной кодировке UTF.
    В результате чего, один и тот же файл с текстом, закодированный в расширенной версии ASCII и в UTF-32, в последнем случае будет иметь размер (весить) в четыре раза больше. Это плохо, но зато теперь у нас появилась возможность закодировать с помощью ЮТФ число знаков, равное двум в тридцать второй степени (миллиарды символов, которые покроют любое реально необходимое значение с колоссальным запасом).
    Но многим странам с языками европейской группы такое огромное количество знаков использовать в кодировке вовсе и не было необходимости, однако при задействовании UTF-32 они ни за что ни про что получали четырехкратное увеличение веса текстовых документов, а в результате и увеличение объема интернет трафика и объема хранимых данных. Это много, и такое расточительство себе никто не мог позволить.
    В результате развития Юникода появилась UTF-16, которая получилась настолько удачной, что была принята по умолчанию как базовое пространство для всех символов, которые у нас используются. Она использует два байта для кодирования одного знака. Давайте посмотрим, как это дело выглядит.
    В операционной системе Windows вы можете пройти по пути «Пуск» — «Программы» — «Стандартные» — «Служебные» — «Таблица символов». В результате откроется таблица с векторными формами всех установленных у вас в системе шрифтов. Если вы выберете в «Дополнительных параметрах» набор знаков Юникод, то сможете увидеть для каждого шрифта в отдельности весь ассортимент входящих в него символов.
    Кстати, щелкнув по любому из них, вы сможете увидеть его двухбайтовый код в формате UTF-16, состоящий из четырех шестнадцатеричных цифр:
    Сколько символов можно закодировать в UTF-16 с помощью 16 бит? 65 536 (два в степени шестнадцать), и именно это число было принято за базовое пространство в Юникоде. Помимо этого существуют способы закодировать с помощью нее и около двух миллионов знаков, но ограничились расширенным пространством в миллион символов текста.
    Но даже эта удачная версия кодировки Юникода не принесла особого удовлетворения тем, кто писал, допустим, программы только на английском языке, ибо у них, после перехода от расширенной версии ASCII к UTF-16, вес документов увеличивался в два раза (один байт на один символ в Аски и два байта на тот же самый символ в ЮТФ-16).
    Вот именно для удовлетворения всех и вся в консорциуме Unicode было решено придумать кодировку переменной длины. Ее назвали UTF-8. Несмотря на восьмерку в названии, она действительно имеет переменную длину, т.е. каждый символ текста может быть закодирован в последовательность длиной от одного до шести байт.
    На практике же в UTF-8 используется только диапазон от одного до четырех байт, потому что за четырьмя байтами кода ничего уже даже теоретически не возможно представить. Все латинские знаки в ней кодируются в один байт, так же как и в старой доброй ASCII.
    Что примечательно, в случае кодирования только латиницы, даже те программы, которые не понимают Юникод, все равно прочитают то, что закодировано в ЮТФ-8. Т.е. базовая часть Аски просто перешла в это детище консорциума Unicode.
    Кириллические же знаки в UTF-8 кодируются в два байта, а, например, грузинские — в три байта. Консорциум Юникод после создания UTF 16 и 8 решил основную проблему — теперь у нас в шрифтах существует единое кодовое пространство. И теперь их производителям остается только исходя из своих сил и возможностей заполнять его векторными формами символов текста.
    В приведенной чуть выше «Таблице символов» видно, что разные шрифты поддерживают разное количество знаков. Некоторые насыщенные символами Юникода шрифты могут весить очень прилично. Но зато теперь они отличаются не тем, что они созданы для разных кодировок, а тем, что производитель шрифта заполнил или не заполнил единое кодовое пространство теми или иными векторными формами до конца.

    Кракозябры вместо русских букв — как исправить

    Давайте теперь посмотрим, как появляются вместо текста кракозябры или, другими словами, как выбирается правильная кодировка для русского текста. Собственно, она задается в той программе, в которой вы создаете или редактируете этот самый текст, или же код с использованием текстовых фрагментов.
    Для редактирования и создания текстовых файлов лично я использую очень хороший, на мой взгляд, Html и PHP редактор Notepad++. Впрочем, он может подсвечивать синтаксис еще доброй сотни языков программирования и разметки, а также имеет возможность расширения с помощью плагинов. Читайте подробный обзор этой замечательной программы по приведенной ссылке.
    В верхнем меню Notepad++ есть пункт «Кодировки», где у вас будет возможность преобразовать уже имеющийся вариант в тот, который используется на вашем сайте по умолчанию:
    В случае сайта на Joomla 1.5 и выше, а также в случае блога на WordPress следует во избежании появления кракозябров выбирать вариант UTF 8 без BOM. А что такое приставка BOM?
    Дело в том, что когда разрабатывали кодировку ЮТФ-16, зачем-то решили прикрутить к ней такую вещь, как возможность записывать код символа, как в прямой последовательности (например, 0A15), так и в обратной (150A). А для того, чтобы программы понимали, в какой именно последовательности читать коды, и был придуман BOM (Byte Order Mark или, другими словами, сигнатура), которая выражалась в добавлении трех дополнительных байтов в самое начало документов.
    В кодировке UTF-8 никаких BOM предусмотрено в консорциуме Юникод не было и поэтому добавление сигнатуры (этих самых пресловутых дополнительных трех байтов в начало документа) некоторым программам просто-напросто мешает читать код. Поэтому мы всегда при сохранении файлов в ЮТФ должны выбирать вариант без BOM (без сигнатуры). Таким образом, вы заранее обезопасите себя от вылезания кракозябров.
    Что примечательно, некоторые программы в Windows не умеют этого делать (не умеют сохранять текст в ЮТФ-8 без BOM), например, все тот же пресловутый Блокнот Windows. Он сохраняет документ в UTF-8, но все равно добавляет в его начало сигнатуру (три дополнительных байта). Причем эти байты будут всегда одни и те же — читать код в прямой последовательности. Но на серверах из-за этой мелочи может возникнуть проблема — вылезут кракозябры.
    Поэтому ни в коем случае не пользуйтесь обычным блокнотом Windows для редактирования документов вашего сайта, если не хотите появления кракозябров. Лучшим и наиболее простым вариантом я считаю уже упомянутый редактор Notepad++, который практически не имеет недостатков и состоит из одних лишь достоинств.
    В Notepad ++ при выборе кодировки у вас будет возможность преобразовать текст в кодировку UCS-2, которая по своей сути очень близка к стандарту Юникод. Также в Нотепаде можно будет закодировать текст в ANSI, т.е. применительно к русскому языку это будет уже описанная нами чуть выше Windows 1251. Откуда берется эта информация?
    Она прописана в реестре вашей операционной системы Windows — какую кодировку выбирать в случае ANSI, какую выбирать в случае OEM (для русского языка это будет CP866). Если вы установите на своем компьютере другой язык по умолчанию, то и эти кодировки будут заменены на аналогичные из разряда ANSI или OEM для того самого языка.
    После того, как вы в Notepad++ сохраните документ в нужной вам кодировке или же откроете документ с сайта для редактирования, то в правом нижнем углу редактора сможете увидеть ее название:
    Чтобы избежать кракозябров, кроме описанных выше действий, будет полезным прописать в его шапке исходного кода всех страниц сайта информацию об этой самой кодировке, чтобы на сервере или локальном хосте не возникло путаницы.
    Вообще, во всех языках гипертекстовой разметки кроме Html используется специальное объявление xml, в котором указывается кодировка текста.
    < ?xml version="1.0" encoding="windows-1251"?>
    Прежде, чем начать разбирать код, браузер узнает, какая версия используется и как именно нужно интерпретировать коды символов этого языка. Но что примечательно, в случае, если вы сохраняете документ в принятом по умолчанию юникоде, то это объявление xml можно будет опустить (кодировка будет считаться UTF-8, если нет BOM или ЮТФ-16, если BOM есть).
    В случае же документа языка Html для указания кодировки используется элемент Meta, который прописывается между открывающим и закрывающим тегом Head:





    Эта запись довольно сильно отличается от принятой в стандарте в Html 4.01, но полностью соответствует новому внедряемому потихоньку стандарту Html 5, и она будет стопроцентно правильно понята любыми используемыми на текущий момент браузерами.
    По идее, элемент Meta с указание кодировки Html документа лучше будет ставить как можно выше в шапке документа, чтобы на момент встречи в тексте первого знака не из базовой ANSI (которые правильно прочитаются всегда и в любой вариации) браузер уже должен иметь информацию о том, как интерпретировать коды этих символов.
    Ссылка на первоисточник: Кодировка текста ASCII (Windows 1251, CP866, KOI8-R) и Юникод (UTF 8, 16, 32) — как исправить проблему с кракозябрами

  2. Adollador Ответить

    Развитие кодировок текстов происходило одновременно с формированием отрасли IT, и они за это время успели претерпеть достаточно много изменений. Исторически все начиналось с довольно-таки не благозвучной в русском произношении EBCDIC, которая позволяла кодировать буквы латинского алфавита, арабские цифры и знаки пунктуации с управляющими символами.
    Но все же отправной точкой для развития современных кодировок текстов стоит считать знаменитую ASCII (American Standard Code for Information Interchange, которая по-русски обычно произносится как «аски»). Она описывает первые 128 символов из наиболее часто используемых англоязычными пользователями — латинские буквы, арабские цифры и знаки препинания.
    Еще в эти 128 знаков, описанных в ASCII, попадали некоторые служебные символы навроде скобок, решеток, звездочек и т.п. Собственно, вы сами можете увидеть их:

    Именно эти 128 символов из первоначального вариант ASCII стали стандартом, и в любой другой кодировке вы их обязательно встретите и стоять они будут именно в таком порядке.
    Но дело в том, что с помощью одного байта информации можно закодировать не 128, а целых 256 различных значений (двойка в степени восемь равняется 256), поэтому вслед за базовой версией Аски появился целый ряд расширенных кодировок ASCII, в которых можно было кроме 128 основных знаков закодировать еще и символы национальной кодировки (например, русской).
    Тут, наверное, стоит еще немного сказать про системы счисления, которые используются при описании. Во-первых, как вы все знаете, компьютер работает только с числами в двоичной системе, а именно с нулями и единицами («булева алгебра», если кто проходил в институте или в школе). Один байт состоит из восьми бит, каждый из которых представляет из себя двойку в степени, начиная с нулевой, и до двойки в седьмой:

    Не трудно понять, что всех возможных комбинаций нулей и единиц в такой конструкции может быть только 256. Переводить число из двоичной системы в десятичную довольно просто. Нужно просто сложить все степени двойки, над которыми стоят единички.
    В нашем примере это получается 1 (2 в степени ноль) плюс 8 (два в степени 3), плюс 32 (двойка в пятой степени), плюс 64 (в шестой), плюс 128 (в седьмой). Итого получает 233 в десятичной системе счисления. Как видите, все очень просто.
    Но если вы присмотритесь к таблице с символами ASCII, то увидите, что они представлены в шестнадцатеричной кодировке. Например, «звездочка» соответствует в Аски шестнадцатеричному числу 2A. Наверное, вам известно, что в шестнадцатеричной системе счисления используются кроме арабских цифр еще и латинские буквы от A (означает десять) до F (означает пятнадцать).
    Ну так вот, для перевода двоичного числа в шестнадцатеричное прибегают к следующему простому и наглядному способу. Каждый байт информации разбивают на две части по четыре бита, как показано на приведенном выше скриншоте. Т.о. в каждой половинке байта двоичным кодом можно закодировать только шестнадцать значений (два в четвертой степени), что можно легко представить шестнадцатеричным числом.
    Причем, в левой половине байта считать степени нужно будет опять начиная с нулевой, а не так, как показано на скриншоте. В результате, путем нехитрых вычислений, мы получим, что на скриншоте закодировано число E9. Надеюсь, что ход моих рассуждений и разгадка данного ребуса вам оказались понятны. Ну, а теперь продолжим, собственно, говорить про кодировки текста.

    Расширенные версии Аски — кодировки CP866 и KOI8-R с псевдографикой

    Итак, мы с вами начали говорить про ASCII, которая являлась как бы отправной точкой для развития всех современных кодировок (Windows 1251, юникод, UTF 8).
    Изначально в нее было заложено только 128 знаков латинского алфавита, арабских цифр и еще чего-то там, но в расширенной версии появилась возможность использовать все 256 значений, которые можно закодировать в одном байте информации. Т.е. появилась возможность добавить в Аски символы букв своего языка.
    Тут нужно будет еще раз отвлечься, чтобы пояснить — зачем вообще нужны кодировки текстов и почему это так важно. Символы на экране вашего компьютера формируются на основе двух вещей — наборов векторных форм (представлений) всевозможных знаков (они находятся в файлах со шрифтами, которые установлены на вашем компьютере) и кода, который позволяет выдернуть из этого набора векторных форм (файла шрифта) именно тот символ, который нужно будет вставить в нужное место.
    Понятно, что за сами векторные формы отвечают шрифты, а вот за кодирование отвечает операционная система и используемые в ней программы. Т.е. любой текст на вашем компьютере будет представлять собой набор байтов, в каждом из которых закодирован один единственный символ этого самого текста.
    Программа, отображающая этот текст на экране (текстовый редактор, браузер и т.п.), при разборе кода считывает кодировку очередного знака и ищет соответствующую ему векторную форму в нужном файле шрифта, который подключен для отображения данного текстового документа. Все просто и банально.
    Значит, чтобы закодировать любой нужный нам символ (например, из национального алфавита), должно быть выполнено два условия — векторная форма этого знака должна быть в используемом шрифте и этот символ можно было бы закодировать в расширенных кодировках ASCII в один байт. Поэтому таких вариантов существует целая куча. Только лишь для кодирования символов русского языка существует несколько разновидностей расширенной Аски.
    Например, изначально появилась CP866, в которой была возможность использовать символы русского алфавита и она являлась расширенной версией ASCII.
    Т.е. ее верхняя часть полностью совпадала с базовой версией Аски (128 символов латиницы, цифр и еще всякой лабуды), которая представлена на приведенном чуть выше скриншоте, а вот уже нижняя часть таблицы с кодировкой CP866 имела указанный на скриншоте чуть ниже вид и позволяла закодировать еще 128 знаков (русские буквы и всякая там псевдографика):

    Видите, в правом столбце цифры начинаются с 8, т.к. числа с 0 до 7 относятся к базовой части ASCII (см. первый скриншот). Т.о. русская буква «М» в CP866 будет иметь код 9С (она находится на пересечении соответствующих строки с 9 и столбца с цифрой С в шестнадцатеричной системе счисления), который можно записать в одном байте информации, и при наличии подходящего шрифта с русскими символами эта буква без проблем отобразится в тексте.
    Откуда взялось такое количество псевдографики в CP866? Тут все дело в том, что эта кодировка для русского текста разрабатывалась еще в те мохнатые года, когда не было такого распространения графических операционных систем как сейчас. А в Досе, и подобных ей текстовых операционках, псевдографика позволяла хоть как-то разнообразить оформление текстов и поэтому ею изобилует CP866 и все другие ее ровесницы из разряда расширенных версий Аски.
    CP866 распространяла компания IBM, но кроме этого для символов русского языка были разработаны еще ряд кодировок, например, к этому же типу (расширенных ASCII) можно отнести KOI8-R:

    Принцип ее работы остался тот же самый, что и у описанной чуть ранее CP866 — каждый символ текста кодируется одним единственным байтом. На скриншоте показана вторая половина таблицы KOI8-R, т.к. первая половина полностью соответствует базовой Аски, которая показана на первом скриншоте в этой статье.
    Среди особенностей кодировки KOI8-R можно отметить то, что русские буквы в ее таблице идут не в алфавитном порядке, как это, например, сделали в CP866.
    Если посмотрите на самый первый скриншот (базовой части, которая входит во все расширенные кодировки), то заметите, что в KOI8-R русские буквы расположены в тех же ячейках таблицы, что и созвучные им буквы латинского алфавита из первой части таблицы. Это было сделано для удобства перехода с русских символов на латинские путем отбрасывания всего одного бита (два в седьмой степени или 128).

    Windows 1251 — современная версия ASCII и почему вылезают кракозябры

    Дальнейшее развитие кодировок текста было связано с тем, что набирали популярность графические операционные системы и необходимость использования псевдографики в них со временем пропала. В результате возникла целая группа, которая по своей сути по-прежнему являлись расширенными версиями Аски (один символ текста кодируется всего одним байтом информации), но уже без использования символов псевдографики.
    Они относились к так называемым ANSI кодировкам, которые были разработаны американским институтом стандартизации. В просторечии еще использовалось название кириллица для варианта с поддержкой русского языка. Примером такой может служить Windows 1251.
    Она выгодно отличалась от используемых ранее CP866 и KOI8-R тем, что место символов псевдографики в ней заняли недостающие символы русской типографики (окромя знака ударения), а также символы, используемые в близких к русскому славянских языках (украинскому, белорусскому и т.д.):

    Из-за такого обилия кодировок русского языка, у производителей шрифтов и производителей программного обеспечения постоянно возникала головная боль, а у нас с вам, уважаемые читатели, зачастую вылезали те самые пресловутые кракозябры, когда происходила путаница с используемой в тексте версией.
    Очень часто они вылезали при отправке и получении сообщений по электронной почте, что повлекло за собой создание очень сложных перекодировочных таблиц, которые, собственно, решить эту проблему в корне не смогли, и зачастую пользователи для переписки использовали транслит латинских букв, чтобы избежать пресловутых кракозябров при использовании русских кодировок подобных CP866, KOI8-R или Windows 1251.
    По сути, кракозябры, вылазящие вместо русского текста, были результатом некорректного использования кодировки данного языка, которая не соответствовала той, в которой было закодировано текстовое сообщение изначально.
    Допустим, если символы, закодированные с помощью CP866, попробовать отобразить, используя кодовую таблицу Windows 1251, то эти самые кракозябры (бессмысленный набор знаков) и вылезут, полностью заменив собой текст сообщения.

    Аналогичная ситуация очень часто возникает при создании сайтов на WordPress и Joomla, форумов или блогов, когда текст с русскими символами по ошибке сохраняется не в той кодировке, которая используется на сайте по умолчанию, или же не в том текстовом редакторе, который добавляет в код отсебятину не видимую невооруженным глазом.
    В конце концов такая ситуация с множеством кодировок и постоянно вылезающими кракозябрами многим надоела, появились предпосылки к созданию новой универсальной вариации, которая бы заменила собой все существующие и решила бы, наконец, на корню проблему с появлением не читаемых текстов. Кроме этого существовала проблема языков подобных китайскому, где символов языка было гораздо больше, чем 256.

    Юникод (Unicode) — универсальные кодировки UTF 8, 16 и 32

  3. Anari Ответить

    В традиционных кодировках для кодирования одного символа используется 8 бит. Легко подсчитать, что такой 8-разрядный код позволяет закодировать 256 различных символов.
    В качестве международного стандарта принята кодовая таблица ASCII (American Standard Code for Information Interchange), кодирующая первую половину символов с числовыми кодами от 0 до 127(рис. 1).
    Национальные стандарты кодировочных таблиц включают первую, международную часть кодовой таблицы без изменений, а во второй половине содержат коды национальных алфавитов, символы псевдографики и некоторые математические знаки. В настоящее время существуют пять различных кодировок кириллицы: КОИ-8-Р (рис. 2), Windows, MS-DOS, Macintosh и ISO, что вызывает трудности при работе с русскоязычными документами.


    Рис. 1. Международная кодировка ASCII
    Хронологически одним из первых стандартов кодирования русских букв на компьютерах был КОИ–8 (Код обмена информацией, 8-битный). Эта кодировка применялась еще в 70-е гг. XX в. на компьютерах серии ЕС ЭВМ, а с середины 80-х стала использоваться в первых русифицированных версиях операционной системы UNIX.
    Наиболее распространенной в настоящее время является кодировка Microsoft Windows, обозначаемая сокращением CP1251 (CP означает Code Page – кодовая страница) (рис. 3).

    Рис. 2. Кодировка КОИ 8-Р

    Рис. 3. Кодировка CP1251
    От начала 90-х годов, времени господства операционной системы MS DOS, остается кодировка CP866. Компьютеры фирмы Apple, работающие под управлением операционной системы Mac OS, используют свою собственную кодировку Mac. Кроме того, Международная организация по стандартизации (International Standards Organization, ISO) утвердила в качестве стандарта для русского языка еще одну кодировку под названием ISO 8859-5.

  4. Au Ответить

    1
    Для кодирования 1 символа используется количество информации, равное Количество символов, которое можно закодировать: N=2 i ; N=2 8 =256

    2
    256 символов достаточно, чтобы закодировать прописные и строчные буквы русского и латинского алфавита, цифры, знаки, графические символы и т.д. Кодирование Десятичный код от 0 до 255 Двоичный код отдо

    3

    4
    Присвоение символу конкретного кода определяется с помощью кодовой таблицы. 33 кода (0, …32) – операции 33, …127 – символы латинского алфавита, цифры, знаки арифметических операций, знаки препинания 128, …255 – являются национальными.

    5
    Существует 5 различных кодовых таблиц для русских букв: KOИ8 СP1251 CP866 Mac ISO (Междугородная организация по стандартизации) Тексты, созданные в одной кодировке, не будут правильно отображаться в другой.

    6
    Широкое распространение получил новый международный стандарт Unicode, который отводит на каждый символ 2 байта, поэтому с его помощью можно закодировать количество символов: N=2 i ; N=2 16 =65536 Эту кодировку поддерживают последние версии платформы Microsoft Windows&Office (начиная с 1997 года)

  5. MaRFiX_WoLF Ответить

    Умоляю напишите сочинение на тему компьютер – друг или враг
    Неменее 100 слов
    сделать слабым-одним глаголом
    превращать в лед-одним глаголом
    Как выполнить сложение, вычитание, умножение, деление обыкновенных дробей
    Числа 2007 и 1917 разделили на одно и то же число . в первом случае в остатке получилось 88 , а во втором- 99 на какое число делили?
    Найдите длину дуги равную 0,8 длины окружности радиус которой равен 5,5 сантиметров число Пи округлить до сотых
    Какие виды треугольника ты знаешь?
    Числитель дроби на 2 меньше знаменателя .Если эту дробь сложить с обратной ей дробью , то получится 130 деленная на 63.Найдите исходную дробь.
    1. Die Psychologin meinte: Schau dich um, ob es vielleicht in der
    Klasse noch andere Madchen gibt, mit denen du befreundet sein
    konntest.
    2. Sonja sagte: „Wenn es ihr egal sein w urde, ware sie
    wahrscheinlich nicht mehr meine Freundin.“
    3. Marita seufzt und fragt: „Was wurden denn Sie an meiner Stelle
    tun?“
    4. Man konnte Christians Flusterstimme fur liebevolle Zartlichkeit
    halten, wusste man nicht, dass ihn unten im Haus ein Madchen
    namens Marita fur abwesend halten soll.
    5. „Schaut alle her“, hatte Eva am liebsten laut gerufen. ЖДУ ПЕРЕВОД
    НАЙДИТЕ ТОЧКИ ГРАФИКА ФУНКЦИИ y=1/x РАВНОУДАЛЕННЫЕ ОТ ОСЕЙ КООРДИНАТ
    Является ли утверждение «Tax is a kind of insurance cover for the bank and the exporting company.»
    а) ложным
    б) истинным
    в) в тексте нет информации

  6. Thorgarus Ответить

    В настоящее время большая часть пользователей при помощи компьютера обрабатывает текстовую информацию, которая состоит из символов: букв, цифр, знаков препинания и др.
    Традиционно для того чтобы закодировать один символ используют количество информации равное 1 байту, т. е. I = 1 байт = 8 бит. При помощи формулы, которая связывает между собой количество возможных событий К и количество информации I, можно вычислить сколько различных символов можно закодировать (считая, что символы – это возможные события):
    К = 2 I = 2 8 = 256,
    т. е. для представления текстовой информации можно использовать алфавит мощностью 256 символов.
    Суть кодирования заключается в том, что каждому символу ставят в соответствие двоичный код от 00000000 до 11111111 или соответствующий ему десятичный код от 0 до 255.
    Самой известной таблицей кодировки является код ASCII (Американский стандартный код для обмена информацией). Первоначально он был разработан для передачи текстов по телеграфу, причем в то время он был 7-битовым, то есть для кодирования символов английского языка, служебных и управляющих символов использовались только 128 7-битовых комбинаций. При этом первые 32 комбинации (кода) служили для кодирования управляющих сигналов (начало текста, конец строки, перевод каретки, звонок, конец текста и т.д.).
    CP866 («Альтернативная кодировка») — набор символов, широко распространившийся во время господствования MS-DOS операционных систем. В ней записываются имена файлов в системе FAT, также кодировка CP866 (в отличие от Windows-1251) сохранила псевдографические символы.
    КОИ8-R представляет собой восьмибитовую кодовую страницу, совместимую с кодировкой ASCII. Она была разработана для смешанных англо-русских текстов и широко использовалась в бывшем СССР.

    UNICODE. В январе 1991 года возник консорциум UNICODE (Unicode Consortium), целью которого является продвижение, развитие и реализация стандарта Unicode как международной системы кодирования для обмена информацией, а также поддержание качества этого стандарта в будущих версиях.

    Стандарт UNICODE 4.0 представляет собой новую систему кодирования символов, выводимых на экран монитора или на принтер, позволяющую закодировать 1 114 112 символов
    Windows-1251 (cp1251) — это стандартная 8-битная кодировка, разработанная компанией Microsoft. Она содержит практически все символы, которые Вы можете встретить на стандартной русской клавиатуре. Также 1251 имеет символы для таких языков, как белорусский, украинский, болгарский и сербский.

  7. Очень Приятно Царь Ответить

    Главная | Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 10 классы | Планирование уроков на учебный год | Представление текстовой информации в компьютере
    Урок 12
    Представление нечисловой информации в компьютере





    Представление текстовой информации в компьютере

    Изучив эту тему, вы узнаете и повторите:
    – как в компьютере представляется текстовая информация;
    – что такое ASCII и Unicode;
    – как в компьютере представляется графическая информация;
    – какие форматы используются при хранении графических файлов;
    – как в компьютере представляется звуковая информация;
    – какие форматы используются при хранении звуковых файлов.
    Компьютеры не с самого рождения могли обрабатывать символьную информацию. Лишь с конца 60-х годов они стали использоваться для обработки текстов и в настоящее время большинство пользователей ПК занимаются вводом, редактированием и форматированием текстовой информации.

    1. Таблица кодирования ASCII.

    А теперь «заглянем» в память компьютера и разберемся, как же представлена в нем текстовая информация.
    Текстовая информация состоит из символов: букв, цифр, знаков препинания, скобок и других. Мы уже говорили, что множество всех символов, с помощью которых записывается текст, называется алфавитом, а число символов в алфавите — его мощностью.
    Для представления текстовой информации в компьютере используется алфавит мощностью 256 символов. Мы знаем, что один символ такого алфавита несет 8 битов информации: 2 в 8 степени равно 256. 8 битов = 1 байт, следовательно:
    Один символ в компьютерном тексте занимает 1 байт памяти.
    Как мы выяснили, традиционно для кодирования одного символа используется 8 бит. И, когда люди определились с количеством бит, им осталось договориться о том, каким кодом кодировать тот или иной символ, чтобы не получилось путаницы, т.е. необходимо было выработать стандарт – все коды символов сохранить в специальной таблице кодов. В первые годы развития вычислительной техники таких стандартов не существовало, а сейчас наоборот, их стало очень много, но они противоречивы. Первыми решили эти проблемы в США, в институте стандартизации. Этот институт ввел в действие таблицу кодов ASCII (AmericanStandardCodeforInformationInterchange – стандартный код информационного обмена США).
    Рассмотрим таблицу кодов ASCII.
    Пояснение: раздать учащимся распечатанную таблицу кодов ASCII.
    Таблица ASCII разделена на две части. Первая – стандартная – содержит коды от 0 до 127. Вторая – расширенная – содержит символы с кодами от 128 до 255.
    Первые 32 кода отданы производителям аппаратных средств и называются они управляющие, т.к. эти коды управляют выводом данных. Им не соответствуют никакие символы.
    Коды с 32 по 127 соответствуют символам английского алфавита, знакам препинания, цифрам, арифметическим действиям и некоторым вспомогательным символам.
    Коды расширенной части таблицы ASCII отданы под символы национальных алфавитов, символы псевдографики и научные символы.
    Стандартная часть таблицы кодов ASCII

    Если вы внимательно посмотрите на обе части таблицы, то увидите, что все буквы расположены в них по алфавиту, а цифры – по возрастанию. Этот принцип последовательного кодирования позволяет определить код символа, не заглядывая в таблицу.
    Коды цифр берутся из этой таблицы только при вводе и выводе и если они используются в тексте. Если же они участвуют в вычислениях, то переводятся в двоичную систему счисления.
    Коды национального (русского) алфавита расширенной частитаблицы ASCII

    Альтернативные системы кодирования кириллицы.

    Тексты, созданные в одной кодировке, не будут правильно отображаться в другой.В настоящее время для поддержки букв русского алфавита (кириллицы) существует несколько кодовых таблиц (кодировок), которые используются различными операционными системами, что является существенным недостатком и в ряде случаев при-водит к проблемам, связанным с операциями декодирования числовых значений символов.
    Для разных типов ЭВМ используются различные кодировки:
    В настоящее время существует 5 кодовых таблиц для русских букв: Windows (СР(кодовая страница)1251), MS – DOS (СР(кодовая страница)866), KOИ – 8 (Код обмена информацией, 8-битный) (используется в OS UNIX), Mac (Macintosh), ISO (OS UNIX).
    Одним из первых стандартов кодирования кириллицы на компьютерах был стан-дарт КОИ-8.
    Национальная часть кодовой таблицы стандарта КОИ8-Р

    В настоящее время применяется и кодовая таблица, размещенная на странице СР866 стандарта кодирования текстовой информации, которая используется в операционной системе MS DOS или сеансе работы MS DOS для кодирования кириллицы.
    Национальная часть кодовой таблицы СР866

    В настоящее время для кодирования кириллицы наибольшее распространение получила кодовая таблица, размещенная на странице СР1251 соответствующего стандарта, которая используется в операционных системах семейства Windows фирмы Microsoft.
    Национальная часть кодовой таблицы СР1251

    Во всех представленных кодовых таблицах, кроме таблицы стандарта Unicode, для кодирования одного символа отводится 8 двоичных разрядов (8 бит).
    В мире существует примерно 6800 различных языков. Если прочитать текст, напечатанный в Японии на компьютере в России или США, то понять его будет нельзя. Чтобы буквы любой страны можно было читать на любом компьютере, для их кодировки стали использовать 2 байта (16 бит).
    N = 2i
    2i = 216 = 65536
    N = 65536
    N – мощность алфавита символов в кодовой таблице Unicode.
    i – информационный вес символа
    Основополагающая таблица использования кодового пространства Unicode


    Использование Unicode значительно упрощает создание многоязычных документов, публикаций и программных приложений.
    Рассмотрим примеры.
    1) Представьте в форме шестнадцатеричного кода слово «ЭВМ» во всех пяти кодировках. Воспользуемся компьютерным калькулятором для перевода чисел из десятичной в шестнадцатеричную систему счисления.
    Последовательности десятичных кодов слова «ЭВМ» в различных кодировках составляем на основе кодировочных таблиц:
    КОИ8-Р: 252 247 237
    СР1251: 221 194 204
    СР866: 157 130 140
    Мас: 157 130 140
    ISO: 205 178 188
    Переводим с помощью калькулятора последовательности кодов из десятичной системы в шестнадцатеричную:
    КОИ8-Р: FCF7 ED
    СР1251: DDC2 CC
    СР866: 9D 82 8C
    Мас: 9D 82 8C
    ISO: CDB2 BC
    2) Определить числовой код символа в кодировке Unicode с помощью тексто-вого редактора MicrosoftWord.
    1. В операционной системе Windows запустить текстовый редактор MicrosoftWord.
    2. В текстовом редакторе MicrosoftWord ввести команду [Вставка-Символ…]. На экране появится диалоговое окно Символ. Центральную часть диалогового окна занимает фрагмент таблицы символов.

    3. Для определения числового кола знака кириллицы с помощью раскрывающегося списка Набор: выбрать пункт кириллица.
    4. Для определения шестнадцатеричного числового кода символа в кодировке Unicode с помощью раскрывающегося списка из: выбрать тип кодировки Юникод (шестн.).
    5. В таблице символов выбрать символ Э. В текстовом поле кодзнака : появится его шестнадцатеричный числовой код (в данном случае 042D).

    Решите задачи:

    №1. Закодируйте с помощью таблицы ASCII слова: А) Excel; Б) Access; В) Windows; Г) ИНФОРМАЦИЯ.
    №2. Буква «i» в таблице кодов имеет код 105. Не пользуясь таблицей, расшифруйте следующую последовательность кодов: 102, 105, 108, 101.
    №3. Десятичный код буквы «е» в таблице ASCII равен 101. Не пользуясь таблицей, составьте последовательность кодов, соответствующих слову help.
    №4. Десятичный код буквы «i» в таблице ASCII равен 105. Не пользуясь таблицей, составьте последовательность кодов, соответствующих слову link.
    №5. Декодируйте следующие тексты, заданные десятичным кодом:
    А) 192 235 227 238 240 232 242 236;
    Б) 193 235 238 234 45 241 245 229 236 224;
    В) 115 111 102 116 119 97 114 101.
    №6. Во сколько раз увеличится информационный объем страницы текста при его преобразовании из кодировки Windows 1251 (таблица кодировки содержит 256 символов) в кодировку Unicode (таблица кодировки содержит 65536 символов)?
    №7. Каков информационный объем текста, содержащего слово ПРОГРАММИРОВАНИЕ:
    А) в 16-битной кодировке;
    Б) в 8-битной кодировке.
    №8. Текст занимает ? Кбайта. Какое количество символов он содержит?
    №9. Текст занимает полных 6 страниц. На каждой странице размещается 30 строк по 80 символов. Определить объем оперативной памяти, который займет этот текст.
    №10. Свободный объем оперативной памяти компьютера 320 Кбайт. Сколько страниц книги поместится в ней, если на странице:
    А) 32 строки по 32 символа;
    Б) 64 строки по 64 символа;
    В) 16 строк по 32 символа.
    №11. Текст занимает 20 секторов на двусторонней дискете объемом 360 Кбайт. Дискета разбита на 40 дорожек по 9 секторов. Сколько символов содержит текст?

  8. Paingrove Ответить

    Типы
    задач:

    Объем
    памяти, занимаемый текстом.

    Кодирование
    (декодирование) текстовой информации.

    Внутреннее
    представление текста в компьютере.

    Объем памяти,
    занимаемый текстом.

    Методические рекомендации:
    В задачах такого
    типа используются понятия:
    алфавит,
    мощность алфавита
    символ,
    единицы измерения
    информации (бит, байт и др.)
    Для представления текстовой (символьной)
    информации в компьютере используется
    алфавит мощностью 256 символов. Один
    символ из такого алфавита несет 8 бит
    информации (28 =256). 8 бит =1 байту,
    следовательно, двоичный код каждого
    символа в компьютерном тексте занимает
    1 байт памяти.
    Уровень
    «3»

    1. Сколько бит памяти займет слово
    «Микропроцессор»?([1],
    c.131,
    пример 1)

    Решение:
    Слово состоит из 14 букв. Каждая буква –
    символ компьютерного алфавита, занимает
    1 байт памяти. Слово занимает 14 байт
    =14*8=112 бит памяти.
    Ответ: 112 бит
    2. Текст занимает 0, 25 Кбайт памяти
    компьютера. Сколько символов содержит
    этот текст? ([1],
    c.133,
    №31)

    Решение:
    Переведем Кб в байты: 0, 25 Кб * 1024 =256 байт.
    Так как текст занимает объем 256 байт, а
    каждый символ – 1 байт, то в тексте 256
    символов.
    Ответ: 256 символов
    3. Текст занимает полных 5 страниц.
    На каждой странице размещается 30 строк
    по 70 символов в строке. Какой объем
    оперативной памяти (в байтах) займет
    этот текст? ([1],
    c.133,
    №32)

    Решение:
    30*70*5 = 10500 символов в тексте на 5 страницах.
    Текст займет 10500 байт оперативной памяти.
    Ответ: 10500 байт
    4.
    Считая, что каждый символ
    кодируется одним байтом, оцените
    информационный объем следующего
    предложения из пушкинского четверостишия:

    Певец-Давид был ростом мал, Но повалил
    же Голиафа! (
    ЕГЭ_2005. демо, уровень
    А)

    1)
    400 бит
    2)
    50 бит
    3)
    400 байт
    4)
    5 байт
    Решение:
    В тексте 50 символов, включая пробелы и
    знаки препинания. При кодировании
    каждого символа одним байтом на символ
    будет приходиться по 8 бит, Следовательно,
    переведем в биты 50*8= 400 бит.
    Ответ: 400 бит
    5.
    Считая, что каждый символ кодируется
    одним байтом, оцените информационный
    объем следующего предложения в кодировке
    КОИ-8: Сегодня метеорологи предсказывали
    дождь. (ЕГЭ_2005, уровень А)

    Решение:
    В таблице КОИ-8 каждый символ закодирован
    с помощью 8 бит. См. решение задачи №4.
    Ответ: 320 бит
    6. Считая, что каждый символ кодируется
    16 битами, оцените информационный объем
    следующего предложения в кодировке
    Unicode:
    Каждый
    символ кодируется 8 битами.

    (ЕГЭ_2005,
    уровень А)

    Решение:
    34 символа в предложении. Переведем в
    биты: 34*16=544 бита.
    Ответ: 544 бит
    7. Каждый символ
    закодирован двухбайтным словом. Оцените
    информационный объем следующего
    предложения в этой кодировке:
    В одном килограмме
    100 грамм.

    (ЕГЭ_2005,
    уровень А)

    Решение:
    19 символов
    в предложении. 19*2 =38 байт

    Ответ: 38 байт
    Уровень
    «4»

    8. Текст занимает полных 10 секторов
    на односторонней дискете объемом 180
    Кбайт. Дискета разбита на 40 дорожек по
    9 секторов. Сколько символов содержит
    текст? ([1],
    c.133,
    №34)

    Решение:
    40*9 = 360 -секторов на дискете.
    180 Кбайт : 360 * 10 =5 Кбайт – поместится на
    одном секторе.
    5*1024= 5120 символов содержит текст.
    Ответ:
    5120 символов

    9. Сообщение
    передано в семибитном коде. Каков его
    информационный объем в байтах, если
    известно, что передано 2000 символов.

    Решение:
    Если код символа
    содержит 7 бит, а всего 2000 символов,
    узнаем сколько бит займет все сообщение.
    2000 х 7=14000 бит.

    Переведем результат
    в байты. 14000 : 8 =1750 байт

    Ответ:
    1750 байт.

    Уровень
    «5»

    10. Сколько секунд
    потребуется модему, передающему сообщение
    со скоростью 28800 бит/с, чтобы передать
    100 страниц текста в 30 строк по 60 символов
    каждая, при условии, что каждый символ
    кодируется одним байтом? (ЕГЭ_2005, уровень
    В)

    Решение:
    Найдем объем сообщения. 30*60*8*100 =1440000
    бит.
    Найдем время передачи сообщения модемом.
    1440000 : 28800 =50 секунд
    Ответ:
    50 секунд

    11. Сколько секунд
    потребуется модему, передающему сообщения
    со скоростью 14400 бит/с, чтобы передать
    сообщение длиной 225 Кбайт? (ЕГЭ_2005, уровень
    В)

    Решение:
    Переведем 225 Кб в биты.225 Кб
    *1024*8 =1843200 бит.
    Найдем время передачи сообщения модемом.
    1843200: 14400 =128 секунд.
    Ответ:
    128 секунд

    Кодирование
    (декодирование) текстовой информации.

    Методические рекомендации:
    В задачах такого
    типа используются понятия:
    Кодирование –отображение дискретного
    (прерывного, импульсного) сообщения в
    виде определенных сочетаний символов.
    Код (от французского слова code
    – кодекс, свод законов) – правило по
    которому выполняется кодирование.
    Кодовая таблица (или кодовая страница)
    – таблица, устанавливающая соответствие
    между символами алфавита и двоичными
    числами.
    Примеры кодовых таблиц (имеются на CD
    диске к учебнику Н. Угринович):

    КОИ-7, КОИ-8 – кодирование русских
    букв и символов (семи-, восьми -битное
    кодирование)

    1) #154 неразрывный пробел.
    Рис.1 Кодировка КОИ8-Р
    ASCII –AmericanStandardCodeforInformationInterchange(американский
    стандарт кодов для обмена информацией)
    – это восьмиразрядная кодовая таблица,
    в ней закодировано 256 символов (127-
    стандартные коды символов английского
    языка, спецсимволы, цифры, а коды от 128
    до 255 – национальный стандарт, алфавит
    языка, символы псевдографики, научные
    символы, коды от 0 до 32 отведены не
    символам, а функциональным клавишам).

    1) #32 – пробел.
    Рис. 2 Международная кодировка ASCII
    Unicode – стандарт,
    согласно которому для представления
    каждого символа используется 2 байта.
    (можно кодировать математические
    символы, русские, английские, греческие,
    и даже китайские).Cего
    помощью можно закодировать не 256, а
    65536 различных символов. Полная спецификация
    стандарта Unicode включает в себя все
    существующие, вымершие и искусственно
    созданные алфавиты мира, а также
    множество математических, музыкальных,
    химических и прочих символов
    СР1251 – наиболее
    распространенной в настоящее время
    является кодировка Microsoft Windows, (“CP”
    означает “Code Page”, “кодовая
    страница”).

    1)
    #160 неразрывный пробел,
    2)
    #173 мягкий перенос.
    Рис. 3 Кодировка CP1251
    СР866
    кодировка под MS DOS

    1) #255 неразрывный пробел.
    Рис. 4 Кодировка СР866
    Мас –кодировка
    в ПК фирмы Apple, работающих под управлением
    операционной системыMac
    OS.

    #202 неразрывный пробел.
    Рис. 5 Кодировка Mac
    ISO 8859-5 -Международная
    организация по стандартизации
    (International Standards Organization, ISO) утвердила в
    качестве стандарта для русского языка
    еще одну кодировку.

    1) Коды 128-159 не используются;
    2)  #160 неразрывный пробел,
    3)  #173 мягкий перенос.
    Рис. 6 Кодировка ISO 8859-5

  9. хохол Ответить

    Обращаю ваше внимание на то, что в таблице кодировки буквы (прописные и строчные) располагаются в алфавитном порядке, а цифры упорядочены по возрастанию значений. Такое соблюдение лексикографического порядка в расположении символов называется принципом последовательного кодирования алфавита.
    Для букв русского алфавита также соблюдается принцип последовательного кодирования.

    Вторая половина таблицы кодов ASCII


    К сожалению, в настоящее время существуют пять различных кодировок кириллицы (КОИ8-Р, Windows. MS-DOS, Macintosh и ISO). Из-за этого часто возникают проблемы с переносом русского текста с одного компьютера на другой, из одной программной системы в другую.
    Хронологически одним из первых стандартов кодирования русских букв на компьютерах был КОИ8 (“Код обмена информацией, 8-битный”). Эта кодировка применялась еще в 70-ые годы на компьютерах серии ЕС ЭВМ, а с середины 80-х стала использоваться в первых русифицированных версиях операционной системы UNIX.
    От начала 90-х годов, времени господства операционной системы MS DOS, остается кодировка CP866 (“CP” означает “Code Page”, “кодовая страница”).
    Компьютеры фирмы Apple, работающие под управлением операционной системы Mac OS, используют свою собственную кодировку Mac.
    Кроме того, Международная организация по стандартизации (International Standards Organization, ISO) утвердила в качестве стандарта для русского языка еще одну кодировку под названием ISO 8859-5.
    Наиболее распространенной в настоящее время является кодировка Microsoft Windows, обозначаемая сокращением CP1251.
    С конца 90-х годов проблема стандартизации символьного кодирования решается введением нового международного стандарта, который называется Unicode. Это 16-разрядная кодировка, т.е. в ней на каждый символ отводится 2 байта памяти. Конечно, при этом объем занимаемой памяти увеличивается в 2 раза. Но зато такая кодовая таблица допускает включение до 65536 символов. Полная спецификация стандарта Unicode включает в себя все существующие, вымершие и искусственно созданные алфавиты мира, а также множество математических, музыкальных, химических и прочих символов.

    Попробуем с помощью таблицы ASCII представить, как будут выглядеть слова в памяти компьютера.

    Внутреннее представление слов в памяти компьютера

  10. VideoAnswer Ответить

Добавить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *