Смекни!
smekni.com

Информация, информатика, представление информации (стр. 3 из 4)

Это должно быть понятно, если вспомнить, что числа 723, 732, 273, 237, 372 327 различны, хоть и записываются одинаковыми цифрами. Значения чисел зависят не только от того, какие цифры в них входят, но и от того в каких позициях эти цифры стоят.

Если учесть что важны не только нули и единицы, но и позиции, в которых они стоят, то с помощью одного байта можно выразить 256 различных единиц информации (от 0 до 255).

0000 0000 = 0

0000 0001 = 1

0000 0010 = 2

0000 0011 = 3

0000 0100 = 4

0000 0101 = 5

1111 1100 = 252

1111 1101 = 253

1111 1110 = 254

1111 1111 = 255

Всегда ли байты состояли из восьми битов? Нет, не всегда. Еще в 60-е годы, когда не было персональных компьютеров и все вычисления проводились на больших электронно-вычислительных машинах (ЭВМ), байты могли быть какими угодно. Наиболее широко были распространены ЭВМ, у которых байт состоял из шести битов, но были и такие, у которых он состоял из четырех и даже из семи битов.

Восьмибитный байт появился достаточно поздно (в начале семидесятых годов), но быстро завоевал популярность. С тех пор понятие о байте, как о группе из восьми битов, является общепризнанным.

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

Одним битом можно закодировать два значения: Да или Нет (1 или 0).

Двумя битами можно закодировать уже четыре значения: 00, 01, 10, 11.

Тремя битами кодируются 8 разных значений.

Добавление одного бита удваивает количество значений, которое можно закодировать. При восьми битах уже можно закодировать 256 разных значений. Нетрудно догадаться, что если бы в байте было 9 битов, то одним байтом можно было бы закодировать 512 разных значений, а если бы в нем было 10 битов, то 1024 и т. д.

Биты 1 2 3 4 5 6 7 8
Количество кодируемых значений 2 4 8 16 32 64 128 256

Но все-таки в байте не 9 и не 10 битов, а только 8, и потому с его помощью кодируют 256 разных значений. Много это или мало? Смотря для чего. Давайте посмотрим, как с помощью байтов кодируют текстовую информацию.

В русском языке 33 буквы (символа) — для их кодирования достаточно 33 различных байтов. Если мы хотим различать прописные (заглавные) и строчные буквы, то потребуется 66 байтов. Для строчных и прописных букв английского языка хватит еще 52 символов — получается 118. Добавим сюда цифры (от 0 до 9), все возможные знаки препинания: точку, запятую, тире, восклицательный и вопросительный знаки. Добавим скобки: круглые, квадратные и фигурные, а также знаки математических операций: +, –, =, /, *. Добавим специальные символы, например такие, как: %,$,&, @, — мы видим, что все их можно выразить восемью битами, и при этом еще останутся свободные коды, которые можно использовать для других целей.

Дело осталось за малым: надо всем людям мира договориться о том, каким кодом (от 0 до 255) должен кодироваться каждый символ. Если, например, все люди будут знать, что код 33 означает восклицательный знак, а код 63 — знак вопросительный, то текст, набранный на одном компьютере, всегда можно будет прочитать и распечатать на другом компьютере.

Такая всеобщая договоренность об одинаковом использовании чего-либо называется стандартом. Стандарт устанавливает таблицу, в которой записано, каким кодом должен кодироваться каждый символ. Такая таблица называется таблицей кодов. В этой таблице должно быть 256 строк, в которых записывается, какой байт какому символу соответствует.

Но здесь-то и начались проблемы. Дело в том, что символы, которые хороши для одной страны, не подходят для другой. В Греции используются одни буквы, в Турции — другие. То, что подходит для Америки, не годится для России, а то, что подходит для России, не подходит для Германии.

Поэтому было принято следующее решение. Таблицу кодов разделили пополам. Первые 128 кодов (с 0 до 127) должны быть стандартными и обязательными для всех стран и всех компьютеров, а во второй половине (с кода 128 до кода 255) каждая страна может делать все, что ей угодно, и создавать в этой половине свой стандарт — национальный.

Первую (международную) половину таблицы кодов называют таблицей ASCII ее ввел американский институт стандартизации ANSI. В этой таблице размещаются прописные и строчные буквы английского алфавита, символы чисел от 0 до 9, все знаки препинания, символы арифметических операций и некоторые другие специальные коды.

За вторую половину кодовой таблицы (коды от 128 до 255) стандарт ASCII не отвечает Разные страны могут создавать здесь свои таблицы. Часто бывает, что даже в одной стране в этой половине действуют несколько разных стандартов, предназначенных для разных компьютерных систем. В России, например, содержание этой половины таблицы может подчиняться четырем разным стандартам, каждый из которых действует в какой-то своей, особой области.

Коды ASCII по-русски произносят как а эс-цэ-и, а иногда (в просторечии) еще проще аски-коды.

Стандартная кодировка ASCII

В русском алфавите буква А имеет первое место, а буква Б – второе. У каждой буквы есть своя позиция. Буква Я имеет позицию номер 33. Мы можем считать, что алфавит — это таблица для кодирования букв.

Стандарт ASCII — это тоже как бы «алфавит», только компьютерный. Он тоже определяет номер каждого символа. Но символов больше, чем букв, потому что к ним относятся еще и цифры, и знаки препинания, и некоторые специальные символы.

Выше мы сказали, что с помощью одного байта можно закодировать 256 разных символов. Еще мы узнали, что стандарт ASCII определяет первую половину кодовой таблицы, то есть, кодировку символов, имеющих номера до 127. Но это не совсем так. На самом деле стандарт ASCII первые 32 кода (от 0 до 31) не определяет. Он оставляет их для так называемых управляющих кодов, которые не используются для представления информации, а применяются для управления компьютерами. Эти коды отданы на усмотрение производителей компьютерных систем (у них есть свои соглашения и свои стандарты по применению этих кодов). Еще несколько лет назад людям, работающим с компьютерами, стоило знать некоторые из этих кодов, но сегодня это уже не требуется.

Самый первый символ стандарта ASCII — это ПРОБЕЛ. Он имеет код 32.

За ним идут специальные символы и знаки препинания (коды с 33 по 47).

Далее идут десять цифр (коды 48-57).

Коды 58—64 используют некоторые математические символы и знаки препинания.

Самое интересное начинается с кодов 65—90. Ими обозначают прописные английские буква от А до Z

Коды 91—96 используются для специальных символов.

Коды 97—122 — строчные буквы английского алфавита.

Коды 123-127 — специальные символы.

Коды верхней половины таблицы символов (128-255) отданы для национальных стандартов. Когда мы узнаем о компьютере немного больше, мы разберемся с несколькими российскими стандартами и посмотрим, как кодируются буквы русского языка.

Имея под рукой кодовую таблицу символов, вы можете легко определить, какие слова закодированы следующими байтами

67 79 77 80 85 84 69 82 99 111 109 112 117 116 101 114

У вас раскодирование информации займет пару минут. Компьютер сделает это за несколько миллионных долей секунды.

Кодирование цветовой информации

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

Легко догадайся, что одним байтом можно закодировать 256 различных цветов. В принципе, этого достаточно для рисованных изображений типа тех, что мы видим в мульфильмах, но для полноцветных изображении живой природы — недостаточно. Человеческий глаз — не самый совершенный инструмент, но и он может различать десятки миллионов цветовых оттенков.

А что, если на кодирование цвета одной точки отдать не один байт, а два, то есть, не 8 битов, а 16. Мы уже знаем, что добавление каждого бита увеличивает в два раза количество кодируемых значений. Добавление восьми битов восемь раз удвоит это количество, то есть увеличит его в 256 раз (2х2х2х2х2х2х2х2=256) Двумя байтами можно закодировать 256х256=65 536 различных цветов. Это уже лучше и похоже на то, что мы видим на фотографиях и на картинках в журналах, но все равно хуже, чем в живой природе.

Если для кодирования цвета одной точки использовать 3 байта (24 бита), то количество возможных цветов увеличится еще в 256 раз и достигнет 16,5 миллионов. Этот режим позволяет хранить, обрабатывать и передавать изображения, не уступающие по качеству наблюдаемым в живой природе.

Возможно, вы знаете, что любой цвет можно представить в виде комбинации трех основных цветов: красного, зеленого и синего (их называют цветовыми составляющими). Если мы кодируем цвет точки с помощью трех байтов, то первый байт выделяется красной составляющей, второй — зеленой, а третий — синей. Чем больше значение байта цветовой составляющей, тем ярче этот цвет.

Белый цвет. Если точка имеет белый цвет, значит, у нее есть все цветовые составляющие, и они имеют полную яркость. Поэтому белый цвет колируется тремя полными байтами 255, 255, 255.

Черный цвет. Он означает отсутствие всех прочих цветов. Все цветовые составляющие равны нулю. Черный цвет кодируется байтами 0, 0, 0.

Серый цвет. Это цвет, промежуточный между черным и белым. В нем есть все цветовые составляющие, но они одинаковы и нейтрализуют друг друга. Например, серый цвет может быть таким 100, 100, 100 или таким: 150, 150, 150. Можно догадаться, что во втором случае яркость выше, и второй вариант серого цвета светлее первого.

Красный цвет. У него все составляющие, кроме красной, равны нулю. Это может быть, например, темно-красный цвет: 128, 0, 0 или ярко-красный: 255, 0, 0.