Разбираемся с прямым и обратным порядком байтов. Сколько байт занимает сообщение хлеба и зрелищ


Единицы измерения объема данных и ёмкости памяти: килобайты, мегабайты, гигабайты

<<Назад  |  Содержание  |  Далее>>

 

 

Итак, в мы выяснили, что в большинстве современных кодировок под хранение на электронных носителях информации одного символа текста отводится 1 байт. Т.е. в байтах измеряется объем (V), занимаемый данными при их хранении и передаче (файлы, сообщения).

Объем данных (V) – количество байт, которое требуется для их хранения в памяти электронного носителя информации.

Память носителей в свою очередь имеет ограниченную ёмкость, т.е. способность вместить в себе определенный объем. Ёмкость памяти электронных носителей информации, естественно, также измеряется в байтах.

Однако байт – мелкая единица измерения объема данных, более крупными являются килобайт, мегабайт, гигабайт, терабайт…

Следует запомнить, что приставки “кило”, “мега”, “гига”… не являются в данном случае десятичными. Так “кило” в слове “килобайт” не означает “тысяча”, т.е. не означает “103”. Бит – двоичная единица, и по этой причине в информатике удобно пользоваться единицами измерения кратными числу “2”, а не числу “10”.

1 байт = 23 =8 бит, 1 килобайт = 210 = 1024 байта. В двоичном виде 1 килобайт = &10000000000 байт.

Т.е. “кило” здесь обозначает ближайшее к тысяче число, являющееся при этом степенью числа 2, т.е. являющееся “круглым” числом в двоичной системе счисления.

Таблица 10.

Именование

Обозначение

Значение в байтах

килобайт

1 Кb

210 b

1 024 b

мегабайт

1 Mb

210 Kb = 220 b

1 048 576 b

гигабайт

1 Gb

210 Mb = 230 b

1 073 741 824 b

терабайт

1 Tb

210 Gb = 240 b

1 099 511 627 776 b

 

 

В связи, с тем, что единицы измерения объема и ёмкости носителей информации кратны 2 и не кратны 10, большинство задач по этой теме проще решается тогда, когда фигурирующие в них значения представляются степенями числа 2. Рассмотрим пример подобной задачи и ее решение:

 

В текстовом файле хранится текст объемом в 400 страниц. Каждая страница содержит 3200 символов. Если используется кодировка KOI-8 (8 бит на один символ), то размер файла составит:

-       1 Mb;

-       1,28 Mb;

-       1280 Kb;

-       1250 Kb.

Решение

1)     Определяем общее количество символов в текстовом файле. При этом мы представляем числа, кратные степени числа 2 в виде степени числа 2, т.е. вместо 4, записываем 22 и т.п. Для определения степени можно использовать Таблицу 7.

символов.

2) По условию задачи 1 символ занимает 8 бит, т.е. 1 байт => файл занимает 27*10000 байт.

3) 1 килобайт = 210 байт => объем файла в килобайтах равен:

.

 

 

<<Назад  |  Содержание  |  Далее>>

inf5.ru

Единицы измерения объема информации

Для измерения длины есть такие единицы, как миллиметр, сантиметр, метр, километр. Известно, что масса измеряется в граммах, килограммах, центнерах и тоннах. Бег времени выражается в секундах, минутах, часах, днях, месяцах, годах, веках. Компьютер работает с информацией и для измерения ее объема также имеются соответствующие единицы измерения.

Мы уже знаем, что компьютер воспринимает всю информацию через нули и единички. Бит – это минимальная единица измерения информации, соответствующая одной двоичной цифре («0» или «1»).

Байт состоит из восьми бит. Используя один байт, можно закодировать один символ из 256 возможных (256 = 28). Таким образом, один байт равен одному символу, то есть 8 битам:

1 символ = 8 битам = 1 байту.

Изучение компьютерной грамотности предполагает рассмотрение и других, более крупных единиц измерения информации.

Таблица байтов:

1 байт = 8 бит

1 Кб (1 Килобайт) =  210 байт = 2*2*2*2*2*2*2*2*2*2 байт == 1024 байт (примерно 1 тысяча байт – 103 байт)

1 Мб (1 Мегабайт) = 220 байт = 1024 килобайт (примерно 1 миллион байт – 106 байт)

1 Гб (1 Гигабайт) =   230 байт = 1024 мегабайт (примерно 1 миллиард байт – 109 байт)

1 Тб (1 Терабайт) =    240 байт = 1024 гигабайт (примерно 1012 байт). Терабайт иногда называют тонна.

1 Пб (1 Петабайт) =   250 байт = 1024 терабайт (примерно 1015 байт).

1 Эксабайт =              260 байт = 1024 петабайт (примерно 1018 байт).

1 Зеттабайт =            270 байт = 1024 эксабайт (примерно 1021 байт).

1 Йоттабайт =           280 байт = 1024 зеттабайт (примерно 1024 байт).

В приведенной выше таблице степени двойки (210, 220, 230 и т.д.) являются точными значениями килобайт, мегабайт, гигабайт. А вот степени числа 10 (точнее, 103, 106, 109 и т.п.) будут уже приблизительными значениями, округленными в сторону уменьшения. Таким образом, 210 = 1024 байта представляет точное значение килобайта, а 103 = 1000 байт является приблизительным значением килобайта.

Такое приближение (или округление) вполне допустимо и является общепринятым.

Ниже приводится таблица байтов с английскими сокращениями (в левой колонке):

1 Kb ~ 103 b = 10*10*10 b= 1000 b – килобайт

1 Mb ~ 106 b = 10*10*10*10*10*10 b = 1 000 000 b – мегабайт

1 Gb ~ 109 b – гигабайт

1 Tb ~ 1012 b – терабайт

1 Pb ~ 1015 b – петабайт

1 Eb ~ 1018 b – эксабайт

1 Zb ~ 1021 b – зеттабайт

1 Yb ~ 1024 b – йоттабайт

Выше в правой колонке приведены так называемые «десятичные приставки», которые используются не только с байтами, но и в других областях человеческой деятельности. Например, приставка «кило» в слове «килобайт» означает тысячу байт, также как в случае с километром она соответствует тысяче метров, а в примере с килограммом она равна тысяче грамм.

Возникает вопрос: есть ли продолжение у таблицы байтов? В математике есть понятие бесконечности, которое обозначается как перевернутая восьмерка: ∞.

Понятно, что в таблице байтов можно и дальше добавлять нули, а точнее, степени к числу 10 таким образом: 1027, 1030, 1033 и так до бесконечности. Но зачем это надо? В принципе, пока хватает терабайт и петабайт. В будущем, возможно, уже мало будет и йоттабайта.

Напоследок парочка примеров по устройствам, на которые можно записать терабайты и гигабайты информации.

Есть удобный «терабайтник» – внешний жесткий диск, который подключается через порт USB к компьютеру. На него можно записать терабайт информации. Особенно удобно для ноутбуков (где смена жесткого диска бывает проблематична) и для резервного копирования информации. Лучше заранее делать резервные копии информации, а не после того, как все пропало.

Флешки бывают 1 Гб, 2 Гб, 4 Гб, 8 Гб, 16 Гб, 32 Гб , 64 Гб и даже 1 терабайт.

CD-диски могут вмещать 650 Мб, 700 Мб, 800 Мб и 900 Мб.

DVD-диски рассчитаны на большее количество информации: 4.7 Гб, 8.5 Гб, 9.4 Гб и 17 Гб.

Упражнения по компьютерной грамотности

описаны в статье “Байт, килобайт, мегабайт…”

P.S. Статья закончилась, но можно еще прочитать:

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

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

Проверяем, кодирует ли компьютер текст

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

P.P.S. Чтобы подписаться на получение новых статей, которых еще нет на блоге: 1) Введите Ваш e-mail адрес в эту форму: 2) На Ваш e-mail придёт письмо для активации подписки. Обязательно кликните по указанной там ссылке, чтобы подтвердить добровольность своей подписки: подробнее с видеоуроком

www.compgramotnost.ru

1 Мбайт это сколько байт. Информационная система и ее составляющие. informatik-m.ru

в 1 мбайте сколько байт

Байт `Словарь мер и весов` Единица информации, применяемая в вычислительной технике.

Байт `Большой энциклопедический политехнический словарь` БАЙТ (англ. byte) - единица кол-ва информации, обычно состоящая из 8 бит и используемая как одно целое при передаче, хранении и переработке информации в ЭВМ. Б. служит для представления букв или спец. символов (занимающих обычно весь Б.) либо десятичных цифр (по 2 цифры в одном Б.). Информация в ЭВМ обрабатывается отдельными Б. либо группами Б. (полями, словами). Использование Б. позволяет строить машинные слова любой длины (кратные целому числу Б.), принятой в данной вычислит. системе. Представление информации в Б. значительно упрощает согласование процессов её обработки в ЭВМ. Большой энциклопедический политехнический словарь 2004

Сколько `Большой словарь русских поговорок` СКОЛЬКО Сколько влезет. 1. Прост. Очень много; очень долго. ФСРЯ, 428; СРГА 1, 160; Глухов 1988, 149. 2. Пск. Изо всех сил. СПП 2001, 70. Большой словарь русских поговорок. — М: Олма Медиа Групп В. М. Мокиенко, Т. Г. Никитина 2007

Сколько `Словарь синонимов` сколько Сколь, что. А что слышалось птиц! Тург. Много ли поработал. невесть сколько. Словарь русских синонимов и сходных по смыслу выражений.- под. ред. Н. Абрамова, М. Русские словари, 1999

БАЙТ `Словарь кроссвордиста` 1. Единица количества информации.2. Часть машинного слова.3. 8 бит.4. Комбинация из восьми двоичных разрядов (бит).

Байт `Психологическая энциклопедия` Ряд двоичных разрядов (см. бит), используемых вместе как скоординированное целое. Первоначально термин использовался в полушутливой манере (много битов составляют один байт), но он прочно вошел в компьютерные науки и теории информации и широко в них используется.

байт `Русский орфографический словарь` байт байт, -а, род. п. мн. ч. -ов, счетн. ф. байт Русский орфографический словарь. / Российская академия наук. Ин-т рус. яз. им. В. В. Виноградова. — М. Азбуковник . В. В. Лопатин (ответственный редактор), Б. З. Букчина, Н. А. Еськова и др. 1999.

Байт `Русское словесное ударение` байт байт, -а; р. мн. ба́йтов, счётн.ф. байт Русское словесное ударение. — М. ЭНАС. М.В. Зарва. 2001.

Байт `Начала современного естествознания` Байт единица количества информации, равная количеству информации, которое содержится в 8 двоичных разрядах, воспринимаемая компьютером как единое целое. 1 байт = 8 бит, 1 килобайт = 1024 бит, 1 мегабайт = 1024 килобайт = 1048576 бит. Начала современного естествознания. Тезаурус. — Ростов-на-Дону В.Н. Савченко, В.П. Смагин 2006

Байт `Краткий толковый словарь по полиграфии` Байт единица измерения количества информации, содержащая 8 бит; в байтах измеряется емкость записывающих устройств памяти, файлов, объем программ. Краткий толковый словарь по полиграфии. 2010.

Байт `Словарь компьютерного жаргона` Тоже, что и бит, только в 8 раз больше

Байт `Литературная энциклопедия` БАЙТ (буквально «дом», «палатка») - по-арабски стих, являющийся вместе с тем и древнейшей строфой (т. к. он состоит из двух полустиший: «шатр» или «мисра» - «половина», «створка двери»), а с европейской точки зрения - скорее двустишием, иногда равным 30 и более слогам.

Байт `Толковый словарь Кузнецова` байт БАЙТ -а; мн. род. -ов и байт; м. [англ. byte]. Единица измерения количества информации, равная 8 битам. Большой толковый словарь русского языка. - 1-е изд-е: СПб. Норинт С. А. Кузнецов. 1998

Байт `Энциклопедия техники` байт основная единица количества информации, воспринимаемая и обрабатываемая в компьютере. Она соответствует восьми разрядам двоичного кода: 1 байт = 8 бит. Один байт – это количество информации в сообщении об одном из 256 (т. е. 2 в 8-й степени) возможных равновероятных событий. Байт записывается в памяти компьютера, считывается и обрабатывается как единое целое. Используются и более крупные единицы: килобайт (Кбайт), мегабайт (Мбайт), гигабайт (Гбайт) и т. д. Приближённо 1 Кбайт = 1000 байт, 1 Мбайт = 1 000 000 байт, 1 Гбайт = = 1 000 000 000 байт. Каждый символ на клавиатуре компьютера (буква, цифра, знаки сложения, вычитания, умножения, деления, знаки препинания и др.) кодируется с помощью одного байта. Энциклопедия «Техника». — М. Росмэн 2006

Конспект урока: Единицы измерения информации

Здравствуйте ребята, садитесь. Проверим отсутсвующих в классе.

Давайте сначала определимся, что же такое информация для человека? Как вы думаете? Да, информация, это все то, что мы видим, слышим, ощущаем. Информация бывает актуальной и неактуальной, т.е. нужной и ненужной. Сегодня мы поговорим об информации, которая представлена в компьютере. Здесь все намного проще, ведь информация в ПК представляется в виде символов.

Запишем тему урока:”Единицы измерения информации”

Символ в компьютере – это любая буква, цифра, знак препинания, математический знак, специальный символ. В общем, все, что можно ввести с клавиатуры.

Но компьютер «не понимает» человеческий язык. Поэтому каждый символ кодируется. ПК «понимает» только нули и единички – с помощью них и представляется информация в компьютере. Эти «нули и единички» называются битом. Бит может принимать одно из двух значений – 0 или 1. Восьми таких бит достаточно, чтобы придать уникальность любому символу, а таких последовательностей, состоящих из 8 бит, может быть 256, что достаточно, чтобы отобразить любой символ. Поэтому – 1 символ = 8 битам. Но информацию не считают не в символах не в битах. Информацию считают в байтах, где 1 символ = 8 битам = 1 байту. Байт – это единица измерения информации.

Давайте попробуем посчитать объем информации в словах. Сколько байт в слове «Окно»? Правильно, 4 байта. Ведь 1 буква – это 1 символ, а 1 символ – 1 байт. А сколько байт в предложении «Окно И Стол!»? Правильно, 12 байт. Пробел, т.е. разделитель между словами, тоже символ, только пустой или белый (от этого и название – пробел).

Давайте выясним какие существуют единицы измерения информации

Единицей измерения количества информации является бит – это наименьшая (элементарная) единица.

1бит – это количество информации, содержащейся в сообщении, которое вдвое уменьшает неопределенность знаний о чем-либо.

Байт – основная единица измерения количества информации.

Байтом называется последовательность из 8 битов.

Байт – довольно мелкая единица измерения информации. Например, 1 символ – это 1 байт.

Производные единицы измерения количества информации

1 килобайт (Кб)=1024 байта =2 10 байтов

1 мегабайт (Мб)=1024 килобайта =2 10 килобайтов=2 20 байтов

1 гигабайт (Гб)=1024 мегабайта =2 10 мегабайтов=2 30 байтов

1 терабайт (Гб)=1024 гигабайта =2 10 гигабайтов=2 40 байтов

Запомните, приставка КИЛО в информатике – это не 1000, а 1024 . то есть 210 .

Записываю тему урока

Записывают определения и значения

Разобравшись с единицами измерения информации в теории. перейдем к рассмотрению темы “Единицы измерения информации” на практике, то есть при решении задач. Я покажу решение на примерах (как образец).

Как вычислить, сколько байтов содержится в 32 битах

Ответ: необходимо разделить 32 на 8.

Как вычислить, сколько мегабайтов содержится в 512 килобайтах?

Ответ: необходимо разделить 512 на 1024.

Вычислите, сколько килобайтов содержится в 4096 битах. (слайд 14)

Решение выполняет учитель:

Используя правила один и три, запишем следующую цепочку:

бит. байт. килобайт

Ответ: 0,5 килобайта.

Вычислить, сколько байтов содержится в одно мегабайте. (слайд 15)

Используя правила один и два, запишем следующую цепочку:

мегабайт * килобайт * байт

Ответ 1048576 байт.

Вычислите сколько килобайтов содержится в 30720 битах

Используя правила, запишем следующую цепочку:

бит. байт. килобайт

30720:8= 3840 байт

Одна тетрадь содержит 262144 символов, сколько это в мегабайтах?

1 символ=1байт, значит тетрадь содержит 367008 байтов.

Используя правила один и три, запишем следующую цепочку:

байт. килобайт. мегабайт

Ответ: 0,25 мегабайта.

Шар находится в одной из четырех коробок. Сколько бит информации несет сообщение о том, в какой именно коробке находится шар.

Имеется 4 равновероятных события ( N=4 ).

По формуле Хартли имеем: 4=2i. Так как 22=2i. то i=2. Значит, это сообщение содержит 2 бита информации.

Выучить записи в тетрадях

Можно ли поместить файл размером 0,35 гигабайт на носитель, на котором свободно 365000 килобайт?

Переведем гигабайты в килобайты и сравним два числа.

Используя правила один и два, запишем следующую цепочку:

гигабайт. мегабайт. килобайт

Это число больше данного, значит файл не поместится.

На примере этой задачи мы смогли объяснить Толе, как можно узнать поместиться ли необходимая информация на диск.

Записывают домашнее задание

16+ Свидетельство о регистрации СМИ: Эл №ФС77-60625 от 20.01..

Лицензия на осуществление образовательной деятельности: № 5201 от 20.05..

Адрес редакции: 214011, РФ, г. Смоленск, ул. Верхне-Сенная, 4.Контакты: [email protected]

Правообладатель товарного знака ИНФОУРОК: ООО «Инфоурок» (Свидетельство № 581999 )

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

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

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

Задачи по теме Количество информации

Пример 1. В коробке 32 карандаша, все карандаши разного цвета. Наугад вытащили красный. Какое количество информации при этом было получено?

Решение.Так как вытаскивание карандаша любого цвета из имеющихся в коробке 32 карандашей является равновероятным, то число возможных событий равно 32.N = 32, I =. N = 2 I. 32 = 2 5. I = 5 бит. Ответ: 5 бит.

Пример 2. В коробке 50 шаров, из них 40 белых и 10 чёрных. Определить количество информации в сообщении о вытаскивании наугад белого шара и чёрного шара.

Решение.Вероятность вытаскивания белого шара P1 = 40/50 = 0,8 Вероятность вытаскивания чёрного шараP2 = 10/50 = 0,2 Количество информации о вытаскивании белого шара I1 = log2 (1/0,8) = log2 1,25 = log1,25/log2 = 0,32 бит Количество информации о вытаскивании чёрного шара I2 = log2 (1/0,2) = log2 5 = log5/log2 » 2,32 бит Ответ: 0,32 бит, 2,32 бит

Пример 3. В озере живут караси и окуни. Подсчитано, что карасей 1500, а окуней - 500. Сколько информации содержится в сообщениях о том, что рыбак поймал карася, окуня, поймал рыбу?

Решение.События поимки карася или окуня не являются равновероятными, так как окуней в озере меньше, чем карасей. Общее количество карасей и окуней в пруду 1500 + 500 = 2000.Вероятность попадания на удочку карася p1 = 1500/2000 = 0,75, окуня p2 – 500/2000 = 0,25.I1 = log2 (1/p1 ), I1 = log2 (1/p2 ), где I1 и I2 – вероятности поймать карася и окуня соответственно.I1 = log2 (1 / 0,75) = 0,43 бит, I2 = log2 (1 / 0,25) = 2 бит – количество информации в сообщении поймать карася и поймать окуня соответственно. Количество информации в сообщении поймать рыбу (карася или окуня) рассчитывается по формуле Шеннона I = - p1 log2 p1 - p2 log2 p2I = - 0,75*log2 0,75 - 0,25*log2 0,25 = - 0,75*(log0,75/log2)-0,25*(log0,25/log2) = = 0,604 бит = 0.6 бит. Ответ: в сообщении содержится 0,6 бит информации.

Пример 4. Какое количество информации несет в себе сообщение о том, что нужная вам программа находится на одной из восьми дискет?

Решение.Количество информации вычисляется по формуле: 2 i = N, где i - искомая величина, N - количество событий. Следовательно, 2 3 =8. Ответ: 3 бита.

Пример 5. Заполнить пропуски числами:

Решение.а) 5 Кбайт = 5120 байт =40 960 бит, б) 1,5 Кбайт = 1536 байт = 12 288 бит; в) 1 Кбайт = 2 10 байт = 2 13 бит;г) 1,5 Гбайт = 1536 Мбайт = 1 572 864 Кбайт; д) 512 Кбайт = 2 19 байт = 2 22 бит.

Пример 6. Какова мощность алфавита, с помощью которого записано сообщение, содержащее 2048 символов, если его объем составляет 1/512 часть одного мегабайта?

Решение.1) 1/512 Мб * 1024 = 2 Кб * 1024 = 2048 байт2) К = 2048 символов, следовательно, i = 1 байт = 8 бит3) 2 i = N; 2 8 = 256 символов

Ответ: 1) 1/512 Мб * 1024 = 2 Кб * 1024 = 2048 байт2) К = 2048 символов, следовательно, i = 1 байт = 8 бит3) 2 i = N; 2 8 = 256 символов.

Пример 7. Книга, набранная с помощью компьютера, содержит 150 страниц; на каждой странице - 40 строк, в каждой строке - 60 символов. Каков объем информации в книге?

Решение.Мощность компьютерного алфавита равна 256. Один символ несет 1 байт информации.Значит, страница содержит 40*60=2400 байт информации. Объем всей информации в книге: 2400*150 = 360 000 байт. Ответ: 360 000 байт.

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

Решение.Для кодировки одной из 10 цифр необходимо 4 бита. Это получаем из 2 3 10 2 4. Объём 150 символов получим 150*4=600(бит). Ответ: 600 бит.

Пример 9. В кодировке Unicode на каждый символ отводится два байта. Определите информационный объем слова из двадцати четырех символов в этой кодировке.

Решение.I= K*i; I = 24*2 байт = 48 байт = 48*8бит = 384 бит. Ответ: 384 бита.

Пример 10. В рулетке общее количество лунок равно 128. Какое количество информации мы получаем в зрительном сообщения об остановке шарика в одной из лунок?

Решение.Количество информации вычисляется по формуле: 2 i = N, где i - искомая величина, N - количество событий.2 i =128. Следовательно, i=7. Ответ: 7 бит.

Источники: http://enc-dic.com/v/6206/%D0%B2_1_%D0%BC%D0%B1%D0%B0%D0%B9%D1%82%D0%B5_%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B1%D0%B0%D0%B9%D1%82, http://infourok.ru/konspekt-uroka-edinici-izmereniya-informacii-1082401.html, http://amminfo.3dn.ru/index/reshenie_zadach_na_kolichestvo_informacii_8_klass/0-99

Комментариев пока нет!

informatik-m.ru

§1.6 Измерение информации - Сайт ikt1793!

РЕШЕНИЕ ЗАДАЧ

При хранении и передаче информации с помощью технических устройств информацию следует рассматривать как последовательность символов - знаков (букв, цифр, кодов цветов точек изображения и т.д.).

Набор символов знаковой системы (алфавит) можно рассматривать как различные возможные состояния (события). Тогда, если считать, что появление символов в сообщении равновероятно, количество возможных событий N можно вычислить как N=2i Количество информации в сообщении I можно подсчитать умножив количество символов K на информационный вес одного символа i Итак, мы имеем формулы, необходимые для определения количества информации в алфавитном подходе:

 

N=2i i Информационный вес символа, бит
  N Мощность алфавита
I=K*i K Количество символов в тексте
  I Информационный объем текста

Возможны следующие сочетания известных (Дано) и искомых (Найти) величин:

 

Тип Дано Найти Формула
1 i N N=2i
2 N i  
3 i,K I I=K*i
4 i,I K  
5 I, K i  
6 N, K I Обе формулы
7 N, I K  
8 I, K N  

 

Если к этим задачам добавить задачи на соотношение величин, записанных в разных единицах измерения, с использованием представления величин в виде степеней двойки мы получим 9 типов задач

Рассмотрим задачи на все типы. Договоримся, что при переходе от одних единиц измерения информации к другим будем строить цепочку значений. Тогда уменьшается вероятность вычислительной ошибки.

Задача 1. Получено сообщение, информационный объем которого равен 32 битам. чему равен этот объем в байтах? 

Решение: В одном байте 8 бит. 32:8=4 Ответ: 4 байта.

Задача 2. Объем информацинного сообщения 12582912 битов выразить в килобайтах и мегабайтах. 

Решение: Поскольку 1Кбайт=1024 байт=1024*8 бит, то 12582912:(1024*8)=1536 Кбайт и поскольку 1Мбайт=1024 Кбайт, то 1536:1024=1,5 Мбайт Ответ:1536Кбайт и 1,5Мбайт.

Задача 3. Компьютер имеет оперативную память 512 Мб. Количество соответствующих этой величине бит больше:

1) 10 000 000 000бит 2) 8 000 000 000бит 3) 6 000 000 000бит 4) 4 000 000 000бит

Решение: 512*1024*1024*8 бит=4294967296 бит.  Ответ: 4.

Задача 4. Определить количество битов в двух мегабайтах, используя для чисел только степени 2. Решение: Поскольку 1байт=8битам=23битам, а 1Мбайт=210Кбайт=220байт=223бит. Отсюда, 2Мбайт=224бит. Ответ: 224бит.

Задача 5. Сколько мегабайт информации содержит сообщение объемом 223бит? Решение: Поскольку 1байт=8битам=23битам, то 223бит=223*223*23бит=210210байт=210Кбайт=1Мбайт. Ответ: 1Мбайт

Задача 6. Один символ алфавита "весит" 4 бита. Сколько символов в этом алфавите? Решение: Дано:

i=4 По формуле N=2i находим N=24, N=16
Найти: N - ?  

Ответ: 16

Задача 7. Каждый символ алфавита записан с помощью 8 цифр двоичного кода. Сколько символов в этом алфавите? Решение: Дано:

i=8 По формуле N=2i находим N=28, N=256
Найти:N- ?  

Ответ: 256

Задача 8. Алфавит русского языка иногда оценивают в 32 буквы. Каков информационный вес одной буквы такого сокращенного русского алфавита? Решение: Дано:

N=32 По формуле N=2i находим 32=2i, 25=2i,i=5
Найти: i- ?  

Ответ: 5

Задача 9. Алфавит состоит из 100 символов. Какое количество информации несет один символ этого алфавита? Решение: Дано:

N=100 По формуле N=2i находим 32=2i, 25=2i,i=5
Найти: i- ?  

Ответ: 5

Задача 10. У племени "чичевоков" в алфавите 24 буквы и 8 цифр. Знаков препинания и арифметических знаков нет. Какое минимальное количество двоичных разрядов им необходимо для кодирования всех символов? Учтите, что слова надо отделять друг от друга! Решение: Дано:

N=24+8=32 По формуле N=2i находим 32=2i, 25=2i,i=5
Найти: i- ?  

Ответ: 5

Задача 11. Книга, набранная с помощью компьютера, содержит 150 страниц. На каждой странице — 40 строк, в каждой строке — 60 символов. Каков объем информации в книге? Ответ дайте в килобайтах и мегабайтах Решение: Дано:

K=360000 Определим количество символов в книге 150*40*60=360000. Один символ занимает один байт. По формуле I=K*iнаходим I=360000байт 360000:1024=351Кбайт=0,4Мбайт
Найти: I- ?  

Ответ: 351Кбайт или 0,4Мбайт

Задача 12. Информационный объем текста книги, набранной на компьютере с использованием кодировки Unicode, — 128 килобайт. Определить количество символов в тексте книги. Решение: Дано:

I=128Кбайт,i=2байт В кодировке Unicode один символ занимает 2 байта. Из формулыI=K*iвыразимK=I/i,K=128*1024:2=65536
Найти: K- ?  

Ответ: 65536

Задача 13.Информационное сообщение объемом 1,5 Кб содержит 3072 символа. Определить информационный вес одного символа использованного алфавита Решение: Дано:

I=1,5Кбайт,K=3072 Из формулы I=K*iвыразимi=I/K,i=1,5*1024*8:3072=4
Найти: i- ?  

Ответ: 4

Задача 14.Сообщение, записанное буквами из 64-символьного алфавита, содержит 20 символов. Какой объем информации оно несет? Решение: Дано:

N=64, K=20 По формуле N=2i находим 64=2i, 26=2i,i=6. По формуле I=K*i I=20*6=120
Найти: I- ?  

Ответ: 120бит

Задача 15. Сколько символов содержит сообщение, записанное с помощью 16-символьного алфавита, если его объем составил 1/16 часть мегабайта? Решение: Дано:

N=16, I=1/16 Мбайт По формуле N=2i находим 16=2i, 24=2i,i=4. Из формулы I=K*i выразим K=I/i, K=(1/16)*1024*1024*8/4=131072
Найти: K- ?  

Ответ: 131072

Задача 16. Объем сообщения, содержащего 2048 символов,составил 1/512 часть мегабайта. Каков размер алфавита, с помощью которого записано сообщение? Решение: Дано:

K=2048,I=1/512 Мбайт Из формулы I=K*i выразим i=I/K, i=(1/512)*1024*1024*8/2048=8. По формулеN=2iнаходим N=28=256
Найти: N- ?  

Ответ: 256

Задачи для самостоятельного решения:

  1. Каждый символ алфавита записывается с помощью 4 цифр двоичного кода. Сколько символов в этом алфавите?
  2. Алфавит для записи сообщений состоит из 32 символов, каков информационный вес одного символа? Не забудьте указать единицу измерения.
  3. Информационный объем текста, набранного на компьюте¬ре с использованием кодировки Unicode (каждый символ кодируется 16 битами), — 4 Кб. Определить количество символов в тексте.
  4. Объем информационного сообщения составляет 8192 бита. Выразить его в килобайтах.
  5. Сколько бит информации содержит сообщение объемом 4 Мб? Ответ дать в степенях 2.
  6. Сообщение, записанное буквами из 256-символьного ал¬фавита, содержит 256 символов. Какой объем информации оно несет в килобайтах?

www.ikt1793.ru

Задания на умение оценивать количественные параметры информационных объектов

1. Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего высказывания Рене Декарта:

Я мыслю, следовательно, существую.

  1. 28 бит
  2. 272 бита
  3. 32 Кбайта
  4. 34 бита

Решение: 34 символа, на 1 символ 1 байт, т. е. 34*1=34 байта = 272 бита

2. В кодировке Unicode на каждый символ отводится два байта. Определите информационный объем слова из двадцати четырех символов в этой кодировке.

  1. 384 бита
  2. 192 бита
  3. 256 бит
  4. 48 бит

Решение: 24 символа на каждый 2 байта, 24*2= 48 байт = 384 бита

3. Считая, что каждый символ кодируется 16-ю битами, оцените информационный объем следующей пушкинской фразы в кодировке Unicode:

Привычка свыше нам дана: Замена счастию она.

  1. 44 бита
  2. 704 бита
  3. 44 байта
  4. 704 байта

Решение: 44 символа, на каждый 16 бит, 44*16 = 704 бита

4. Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке, первоначально записанного в 8-битном коде, в 16-битную кодировку Unicode. При этом информационное сообщение увеличилось на 2048 байт. Каков был информационный объем сообщения до перекодировки?

  1. 1024 байт
  2. 2048 бит
  3. 2 Кбайта
  4. 2 Мбайта

Решение: N*16-N*8=2048, N*8=2048, N= 256 символов, 256*8=2048 байт = 2Кбайта

5. Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке, первоначально записанного в 16-битном коде Unicode, в 8-битную кодировку КОИ-8. При этом информационное сообщение уменьшилось на 800 бит. Какова длина сообщения в символах?

  1. 50
  2. 100
  3. 200
  4. 800

Решение: N*16-N*8=800, N*8=800, N= 100 символов

6. Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке длиной 8 символов, первоначально записанного в 16-битном коде Unicode, в 8-битную кодировку КОИ-8. При этом информационный объем сообщения уменьшился на

  1. 8 байт
  2. 8 бит
  3. 64 байта
  4. 128 бит

Решение: 8*8= 64 бита (КОИ-8), 8*16 = 128 бит (Unicode), 128-64 = 64 бита = 8 байт

7. Информационный объем сообщения равен 40960 бит. Чему равен объем этого сообщения в Кбайтах?

  1. 5
  2. 8
  3. 32
  4. 12

Решение: 40960/8=5120 / 1024 = 5 Кбайт

8. Символы кодируются 8 битами. Сколько Кбайт памяти потребуется для сохранения 160 страниц текста, содержащего в среднем 192 символа на каждой странице?

  1. 10
  2. 20
  3. 30
  4. 40

Решение: 8 * 160*192 = 245760 / 8 = 30720 / 1024 = 30

9. Объем сообщения равен 11 Кбайт. Сообщение содержит 5632 символа. Каков объем, занимаемый одним символом?

  1. 16 байт
  2. 1 байт
  3. 2 бита
  4. 2 байта

Решение: 11 Кбайт = 11264 байта = 90112 бит/5632 = 16 бит на символ = 2 байта

10. Статья, набранная на компьютере, содержит 8 страниц, на каждой странице 40 строк, в каждой строке 64 символа. В одном из представлений Unicode каждый символ кодируется 16 битами. Определите информационный объём статьи в этом варианте представления Unicode.

  1. 320 байт
  2. 35 Кбайт
  3. 640 байт
  4. 40 Кбайт

Решение: 8*40*64*16 = 327680 бит = 40960 байт = 40 Кбайт

11. Рассказ, набранный на компьютере, содержит 4 страницы, на каждой странице 48 строк, в каждой строке 64 символа. Определите информационный объём рассказа в кодировке КОИ-8, в которой каждый символ кодируется 8 битами.

  1. 12 Кбайт
  2. 12000 байт
  3. 20 Кбайт
  4. 24 Кбайт

Решение: 4*48*64*8 = 98304 бит = 12288 байт = 12 Кбайт

Нахождение ифнормационного объема .odpНахождение ифнормационного объема .ppt

uchinf.ru

Разбираемся с прямым и обратным порядком байтов / Хабрахабр

Перевод статьи Халида Азада — Understanding Big and Little Endian Byte Order

Проблемы с порядком байтов очень расстраивают, и я хочу избавить Вас от горя, которое довелось испытать мне. Вот ключевые тезы:

  • Проблема: Компьютеры, как и люди, говорят на разных языках. Одни записывают данные “слева направо” другие “справа налево”. При этом каждое устройство отлично считывает собственные данные — проблемы начинаются, когда один компьютер сохраняет данные, а другой пытается эти данные считать.
  • Решение: Принять некий общий формат (например, весь сетевой трафик передается в едином формате). Или всегда добавлять заголовок, описывающий формат хранения данных. Если считанный заголовок имеет обратный порядок, значит данные сохранены в другом формате и должны быть переконвертированы.
Числа и данные
Наиболее важная концепция заключается в понимании разницы между числами и данными, которые эти числа представляют. Число — это абстрактное понятия, как исчислитель чего-то. У Вас есть десять пальцев. Понятие “десять” не меняется, в зависимости от использованного представления: десять, 10, diez (испанский), ju (японский), 1010 (бинарное представление), Х (римские числа)… Все эти представления указывают на понятие “десяти”.

Сравним это с данными. Данные — это физическое понятие, просто последовательность битов и байтов, хранящихся на компьютере. Данные не имеют неотъемлемого значения и должны быть интерпретированы тем, кто их считывает.

Данные — это как человеческое письмо, просто набор отметок на бумаге. Этим отметкам не присуще какое-либо значение. Если мы видим линию и круг (например, |O), то можно интерпретировать это как “десять”. Но это лишь предположение, что считанные символы представляют число. Это могут быть буквы “IO” — название спутника Юпитера. Или, возможно, имя греческой богини. Или аббревиатура для ввода/вывода. Или чьи-то инициалы. Или число 2 в бинарном представлении (“10”). Этот список предположений можно продолжить. Дело в том, что один фрагмент данных (|O) может быть интерпретировано по разному, и смысл остается не ясен, пока кто-то не уточнит намерения автора.

Компьютеры сталкиваются с такой же проблемой. Они хранят данные, а не абстрактные понятия, используя при этом 1 и 0. Позднее они считывают эти 1 и 0 и пытаются воссоздать абстрактные понятия из набора данных. В зависимости от сделанных допущений, эти 1 и 0 могут иметь абсолютно разное значение.

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

Основные концепции:

  • Данные (биты и байты или отметки на бумаге) сами по себе не имеют смысла. Они должны быть интерпретированы в какое-то абстрактное понятие, например, число.
  • Как и люди, компьютеры имеют различные способы хранения одного и того же абстрактного понятия (например, мы можем различными способами сказать “10”).
Храним числа как данные
К счастью, большинство компьютеров хранят данные всего в нескольких форматах (хотя так было не всегда). Это дает нам общую отправную точку, что делает жизнь немного проще:
  • Бит имеет два состояния (включен или выключен, 1 или 0).
  • Байт — это последовательность из 8 бит. Крайний левый бит в байте является старшим. То есть двоичная последовательность 00001001 является десятичным числом девять. 00001001 = (2^3 + 2^0 = 8 + 1 = 9).
  • Биты нумеруются справа налево. Бит 0 является крайним правым и он наименьший. Бит 7 является крайним левым и он наибольший.
Мы можем использовать эти соглашения в качестве строительного блока для обмена данными. Если мы сохраняем и читаем данные по одному байту за раз, то этот подход будет работать на любом компьютере. Концепция байта одинаковая на всех машинах, понятие “байт 0” одинакова на всех машинах. Компьютеры также отлично понимают порядок, в котором Вы посылаете им байты — они понимают какой байт был прислан первым, вторым, третьим и т. д. “Байт 35” будет одним и тем же на всех машинах.

Так в чем же проблема — компьютеры отлично ладят с одиночными байтами, правда? Ну, все превосходно для однобайтных данных, таких как ASCII-символы. Однако, много данных используют для хранения несколько байтов, например, целые числа или числа с плавающей точкой. И нет никакого соглашения о том, в каком порядке должны хранится эти последовательности.

Пример с байтом
Рассмотрим последовательность из 4 байт. Назовем их W X Y и Z. Я избегаю наименований A B C D, потому что это шестнадцатеричные числа, что может немного запутывать. Итак, каждый байт имеет значение и состоит из 8 бит.Имя байта W X Y Z Позиция 0 1 2 3 Значение (hex) 0x12 0x34 0x56 0x78 Например, W — это один байт со значением 0х12 в шестнадцатеричном виде или 00010010 в бинарном. Если W будет интерпретироваться как число, то это будет “18” в десятеричной системе (между прочим, ничто не указывает на то, что мы должны интерпретировать этот байт как число — это может быть ASCII-символ или что-то совсем иное). Вы все еще со мной? Мы имеем 4 байта, W X Y и Z, каждый с различным значением.
Понимаем указатели
Указатели являются ключевой частью программирования, особенно в языке С. Указатель представляет собой число, являющееся адресом в памяти. И это зависит только от нас (программистов), как интерпретировать данные по этому адресу.

В языке С, когда вы кастите (приводите) указатель к конкретному типу (такому как char * или int *), это говорит компьютеру, как именно интерпретировать данные по этому адресу. Например, давайте объявим:

void *p = 0; // p указатель на неизвестный тип данных // p нулевой указатель - не разыменовывать char *c; // c указатель на один байт Обратите внимание, что мы не можем получить из р данные, потому что мы не знаем их тип. р может указывать на цифру, букву, начало строки, Ваш гороскоп или изображение — мы просто не знаем, сколько байт нам нужно считать и как их интерпретировать.

Теперь предположим, что мы напишем:

c = (char *)p; Этот оператор говорит компьютеру, что р указывает на то же место, и данные по этому адресу нужно интерпретировать как один символ (1 байт). В этом случае, с будет указывать на память по адресу 0, или на байт W. Если мы выведем с, то получим значение, хранящееся в W, которое равно шестнадцатеричному 0x12 (помните, что W — это полный байт). Этот пример не зависит от типа компьютера — опять же, все компьютеры одинаково хорошо понимают, что же такое один байт (в прошлом это было не всегда так).

Этот пример полезен, он одинаково работает на все компьютерах — если у нас есть указатель на байт (char *, один байт), мы можем проходить по памяти, считывая по одному байту за раз. Мы можем обратиться к любому месту в памяти, и порядок хранения байт не будет иметь никакого значения — любой компьютер вернет нам одинаковую информацию.

Так в чем же проблема?
Проблемы начинаются, когда компьютер пытается считать несколько байт. Многие типы данных состоят больше чем из одного байта, например, длинные целые (long integers) или числа с плавающей точкой. Байт имеет только 256 значений и может хранить числа от 0 до 255.

Теперь начинаются проблемы — если Вы читаете многобайтные данные, то где находится старший байт?

  • Машины с порядком хранения от старшего к младшему (прямой порядок) хранят старший байт первым. Если посмотреть на набор байтов, то первый байт (младший адрес) считается старшим.
  • Машины с порядком хранения от младшего к старшему (обратный порядок) хранят младший байт первым. Если посмотреть на набор байт, то первый байт будет наименьшим.
Такое именование имеет смысл, правда? Тип хранения от старшего к младшему подразумевает, что запись начинается со старшего и заканчивается младшим (Между прочим, английский вариант названий от старшего к младшего (Big-endian) и от младшего к старшему (Little-endian) взяты из книги “Путешествия Гулливера”, где лилипуты спорили о том, следует ли разбивать яйцо на маленьком конце (little-end) или на большом (big-end)). Иногда дебаты компьютеров такие же осмысленные :)

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

Теперь предположим, что у нас есть 4 байта (WXYZ), которые хранятся одинаково на машинах с обоими типами порядка записи байтов. То есть, ячейка памяти 0 соответствует W, ячейка 1 соответствует X и т. д.

Мы можем создать такое соглашение, помня, что понятие “байт” является машинно-независимым. Мы можем обойти память по одному байту за раз и установить необходимые значения. Это будет работать на любой машине.

c = 0; // указывает на позицию 0 (не будет работать на реальной машине!) *c = 0x12; // устанавливаем значение W c = 1; // указывает на позицию 1 *c = 0x34; // устанавливаем значение X ... // то же повторяем для Y и Z Такой код будет работать на любой машине и успешно установит значение байт W, X, Y и Z расположенных на соответствующих позициях 0, 1, 2 и 3.
Интерпретация данных
Теперь давайте рассмотрим пример с многобайтными данными (наконец-то!). Короткая сводка: “short int” это 2-х байтовое число (16 бит), которое может иметь значение от 0 до 65535 (если оно беззнаковое). Давайте используем его в примере.short *s; // указатель на short int (2 байта) s = 0; // указатель на позицию 0; *s это значение Итак, s это указатель на short int, и сейчас он указывает на позицию 0 (в которой хранится W). Что произойдет, когда мы считаем значение по указателю s?
  • Машина с прямым порядком хранения: Я думаю, short int состоит из двух байт, а значит я считаю их. Позиция s это адрес 0 (W или 0х12), а позиция s + 1 это адрес 1 (X или 0х34). Поскольку первый байт является старшим, то число должно быть следующим 256 * байт 0 + байт 1 или 256 * W + X, или же 0х1234. Я умножаю первый байт на 256 (2^8) потому что его нужно сдвинуть на 8 бит.
  • Машина с обратным порядком хранения: Я не знаю что курит мистер “От старшего к младшему”. Я соглашусь, что short int состоит из 2 байт и я считаю их точно также: позиция s со значение 0х12 и позиция s + 1 со значением 0х34. Но в моем мире первым является младший байт! И число должно быть байт 0 + 256 * байт 1 или 256 * X + W, или 0х3412.
Обратите внимание, что обе машины начинали с позиции s и читали память последовательно. Не никакой путаницы в том, что значит позиция 0 и позиция 1. Как и нет никакой путаницы в том, что являет собой тип short int.

Теперь Вы видите проблему? Машина с порядком хранения от старшего к младшему считает, что s = 0x1234, в то время как машина с порядком хранения от младшего к старшему думает, что s = 0x3412. Абсолютно одинаковые данные дают в результате два совершенно разных числа.

И еще один пример
Давайте для “веселья” рассмотрим еще один пример с 4 байтовым целым:int *i; // указатель на int (4 байты 32-битовой машине) i = 0; // указывает на позицию 0, а *i значение по этому адресу И опять мы задаемся вопросом: какое значение хранится по адресу i?
  • Машина с прямым порядком хранения: тип int состоит из 4 байт и первый байт является старшим. Считываю 4 байта (WXYZ) из которых старший W. Полученное число: 0х12345678.
  • Машина с обратным порядком хранения: несомненно, int состоит из 4 байт, но старшим является последний. Так же считываю 4 байта (WXYZ), но W будет расположен в конце — так как он является младшим. Полученное число: 0х78563412.
Одинаковые данные, но разный результат — это не очень приятная вещь.
Проблема NUXI
Проблему с порядком байт иногда называют проблемой NUXI: слово UNIX, сохраненное на машинах с порядком хранения от старшего к младшему, будет отображаться как NUXI на машинах с порядком от младшего к старшему.

Допустим, что мы собираемся сохранить 4 байта (U, N, I, и X), как два short int: UN и IX. Каждая буква занимает целый байт, как в случае с WXYZ. Для сохранения двух значений типа short int напишем следующий код:

short *s; // указатель для установки значения переменной типа short s = 0; // указатель на позицию 0 *s = UN; // устанавливаем первое значение: U * 256 + N (вымышленный код) s = 2; // указатель на следующую позицию *s = IX; // устанавливаем второе значение: I * 256 + X Этот код не является специфичным для какой-то машины. Если мы сохраним значение “UN” на любой машине и считаем его обратно, то обратно получим тоже “UN”. Вопрос порядка следования байт не будет нас волновать, если мы сохраняем значение на одной машине, то должны получить это же значение при считывании.

Однако, если пройтись по памяти по одному байту за раз (используя трюк с char *), то порядок байт может различаться. На машине с прямым порядком хранения мы увидим:

Byte: U N I X Location: 0 1 2 3 Что имеет смысл. “U” является старшим байтом в “UN” и соответственно хранится первым. Такая же ситуация для “IX”, где “I” — это старший байт и хранится он первым.

На машине с обратным порядком хранения мы скорее всего увидим:

Byte: N U X I Location: 0 1 2 3 Но и это тоже имеет смысл. “N” является младшим байтом в “UN” и значит хранится он первым. Опять же, хотя байты хранятся в “обратном порядке” в памяти, машины с порядком хранения от младшего к старшему знают что это обратный порядок байт, и интерпретирует их правильно при чтении. Также, обратите внимание, что мы можем определять шестнадцатеричные числа, такие как 0x1234, на любой машине. Машина с обратным порядком хранения байтов знает, что Вы имеете в виду, когда пишите 0x1234 и не заставит Вас менять значения местами (когда шестнадцатеричное число отправляется на запись, машина понимает что к чему и меняет байты в памяти местами, скрывая это от глаз. Вот такой трюк.).

Рассмотренный нами сценарий называется проблемой “NUXI”, потому что последовательность “UNIX” интерпретируется как “NUXI” на машинах с различным порядком хранения байтов. Опять же, эта проблема возникает только при обмене данными — каждая машина имеет внутреннюю совместимость.

Обмен данными между машинами с различным порядком хранения байтов
Сейчас компьютеры соединены — прошли те времена, когда машинам приходилось беспокоиться только о чтении своих собственных данных. Машинам с различным порядком хранения байтов нужно как-то обмениваться данными и понимать друг друга. Как же они это делают?
Решение 1: Использовать общий формат
Самый простой подход состоит в согласовании с общим форматом для передачи данных по сети. Стандартным сетевым является порядок от старшего к младшему, но некоторые люди могут расстроиться, что не победил порядок от младшего к старшему, поэтому просто назовем его “сетевой порядок”.

Для конвертирования данных в соответствии с сетевым порядком хранения байтов, машины вызывают функцию hton() (host-to-network). На машинах с прямым порядком хранения эта функция не делает ничего, но мы не будем говорить здесь об этом (это может разозлить машины с обратным порядком хранения :) ).

Но важно использовать функцию hton() перед отсылкой данных даже если Вы работаете на машине с порядком хранения от старшего к младшему. Ваша программа может стать весьма популярной и будет скомпилирована на различных машинах, а Вы ведь стремитесь к переносимости своего кода (разве не так?).

Точно также существует функция ntoh() (network-to-host), которая используется для чтения данных из сети. Вы должны использовать ее, чтобы быть уверенными, что правильно интерпретируете сетевые данные в формат хоста. Вы должны знать тип данных, которые принимаете, чтобы расшифровать их правильно. Функции преобразования имеют следующий вид:

htons() - "Host to Network Short" htonl() - "Host to Network Long" ntohs() - "Network to Host Short" ntohl() - "Network to Host Long" Помните, что один байт — это один байт и порядок не имеет значения.

Эти функции имеют критическое значение при выполнении низкоуровневых сетевых операций, таких как проверка контрольной суммы IP-пакетов. Если Вы не понимаете сути проблемы с порядком хранения байтов, то Ваша жизнь будет наполнена болью — поверьте мне на слово. Используйте функции преобразования и знайте, зачем они нужны.

Решение 2: Использования маркера последовательности байтов (Byte Order Mark — BOM)
Этот подход подразумевает использование некого магического числа, например 0xFEFF, перед каждым куском данных. Если Вы считали магическое число и его значение 0xFEFF, значит данные в том же формате, что и у Вашей машины и все хорошо. Если Вы считали магическое число и его значение 0xFFFE, это значит, что данные были записаны в формате, отличающемся от формата вашей машины и Вы должны будете преобразовать их.

Нужно отметить несколько пунктов. Во-первых, число не совсем магическое, как известно программисты часто используют этот термин для описания произвольно выбранных чисел (BOM может быть любой последовательностью различных байтов). Такая пометка называется маркером последовательности байтов потому что показывает в каком порядке данные были сохранены.

Во-вторых, BOM добавляет накладные расходы для всех передаваемых данных. Даже в случае передачи 2 байт информации Вы должны добавлять к ним 2 байта маркера BOM. Пугающе, не так ли?

Unicode использует BOM, когда сохраняет многобайтные данные (некоторые кодировки Unicode могут иметь по 2, 3 и даже 4 байта на символ). XML позволяет избежать этой путаницы, сохраняя данные сразу в UTF-8 по умолчанию, который сохраняет информацию Unicode по одному байту за раз. Почему это так круто?

Повторяю в 56-й раз — потому что проблема порядка хранения не имеет значения для единичных байт.

Опять же, в случае использования BOM может возникнуть другие проблемы. Что, если Вы забудете добавить BOM? Будете предполагать, что данные были отправлены в том же формате, что и Ваши? Прочитаете данные и, увидев что они “перевернуты” (что бы это не значило), попытаетесь преобразовать их? Что, если правильные данные случайно будут содержать неправильный BOM? Эти ситуации не очень приятные.

Почему вообще существует эта проблема? Нельзя ли просто договориться?
Ох, какой же это философский вопрос. Каждый порядок хранения байтов имеет свои преимущества. Машины с порядком следования от младшего к старшему позволяют читать младший байт первым, не считывая при этом остальные. Таким образом можно легко проверить является число нечетным или четным (последний бит 0), что очень здорово, если Вам необходима такая проверка. Машины с порядком от старшего к младшему хранят данные в памяти в привычном для человека виде (слева направо), что упрощает низкоуровневую отладку.

Так почему же все просто не договорятся об использовании одной из систем? Почему одни компьютеры пытаются быть отличными от других? Позвольте мне ответить вопросом на вопрос: почему не все люди говорят на одном языке? Почему в некоторых языках письменность слева направо, а у других справа налево?

Иногда системы развиваются независимо, а в последствии нуждаются во взаимодействии.

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

habrahabr.ru

Содержание

3

Методические указания к практическим работам по темам «Теория информации и кодирования» и «Логические основы ЭВМ» по дисциплине «Информатика» составлены в соответствии с рабочим учебным планом, программой дисциплины и предназначены для студентов специальностей 130100, 130201, 130304, 130500, 130501, 130503, 130504, 190500, 190603, 190702, 151001, 080105, 080502т, 080502тр, 080502н, 550700.

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

Авторы: к.т.н., доцент Гахова Н. Н., к.т.н. Катков К. А.

Рецензент:

Практическое занятие 1. Количество и единицы измерения информации …………………………………………………………

3

Практическое занятие 2. Представление чисел в позиционных системах счисления ……………………….………………………..

Практическое занятие 3. Представление информации в памяти ЭВМ ………………………………………………………………….

Практическое занятие 4. Двоичная арифметика…………………..

Практическое занятие 5. Логические основы ЭВМ ………………

Практическое занятие 1. Количество и единицы измерения информации Теоретическое обоснование Единицы измерения информации

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

1 Байт=8 бит,

1 Килобайт=1024 байт=210 байт, 1 Мегабайт = 1024 Кбайт= 220 байт,

1 Гигабайт=1024 Мбайт=230 байт, 1Терабайт=1024 Гбайт= 240 байт,

1 Петабайт=1024 Тбайт=250 байт, 1Экзабайт=1024 Пбайт= 260 байт.

Задания:

1) Расставьте знаки <, =, > в следующей цепочке:

20 байт … 1000 бит … 1 Мбайт … 1024 Кбайт … 1 Гбайт.

2) Упорядочите величины по возрастанию:

1025 байт, 1 Кбайт, 1 Мбайт, 1023 Кбайт, 1 Тбайт, 1025 бит.

3) Выберите правильные ответы: 5 Мбайт - … меньше 5000 Кбайт, равны 5120 Кбайт, равны 512 Кбайт, больше 5000 Кбайт, больше 1 Гбайта?

4) Установите соответствия между единицами измерения информации?

1600 бит =

2048 байт

2 Кбайт =

10240 Мбайт

2 Мбайт =

2048 Кбайт

10 Гбайт =

200 байт

5) Найдите х из соотношений:

а)16х бит=32 Мбайт, б)8хКбайт=16 Гбайт

Количество информации (энтропийный способ)

  1. Равновероятные события. Любая система характеризуется своими состояниями, которые происходят в результате определенных событий. События равновероятны, если при возрастающем числе опытов число состояний системы (например, «орла» и «решки» монеты) постепенно сближаются. Так, при бросании равносторонней четырехгранной пирамиды существует 4 равновероятных события, а при бросании шестигранного игрального кубика - 6 равновероятных событий.

Формула Хартли определяет количество информации I в битах для количества возможных равновероятных событий N следующим образом:

I=log 2 N. (1)

Для определения количества возможных событий, если известно количество информации, применяют обратную формулу:

N=2I. (2)

Для вычисления значения логарифма с помощью калькулятора можно использовать формулу

Задания:

  1. Чему равно наибольшее натуральное число, кодируемое 7 битами, 128, 127, 256, или 64?

  2. Сколько информации содержится в одном разряде двоичного числа?

  3. Какое количество информации содержит сообщение, что нужный файл находится на одном из 8 лазерных дисков?

  4. Сообщение о том, что лекция будет на 10 этаже, несет 4 бита информации. Сколько этажей в доме?

  1. Неравновероятные события. Если в результате эксперимента события происходят с разными вероятностями, то события неравновероятны. Например, если одна из сторон монеты будет более тяжелой, то она будет чаще выпадать. Или если из 10 карандашей будет 2 красных и 8 синих, то вероятность доставания красного карандаша будет значительно больше, чем синего.

Количество информации для одного из событий с различными вероятностями определяется по формуле:

I = log2 (1/p) , (3)

где вероятность p= K/N, K – количество интересующего события, N– общее количество событий.

Количество информации для событий с различными вероятностями определяется по формуле Шеннона:

, (4)

где pi– вероятности отдельных событий.

Пример: В коробке лежит 8 ручек с черной пастой и 24 с красной. Сколько информации несет сообщение о том, что достали ручку с черной пастой?

Дано: Kч=8, Kк=24 . Найти Iч=?

N=8+24=32- всего ручек

Рч=8/32=1/4-вероятность доставания черной ручки

Iч=log2(1/1/4)=2 бита

Т.о. сообщение о том, что достали ручку с черной пастой, несет 2 бита информации.

Задания:

  1. Студент на первом курсе получил 100 оценок. Сообщение о том, что он получил пятерку, несет 2 бита информации. Сколько пятерок студент получил на первом курсе?

  2. В группе 30 студентов. За контрольную по информатике получено 15 пятерок, 6 четверок, 8 троек и 1 двойка. Какое количество информации в сообщении о том, что Иванов получил пятерку?

  3. В коробке хранятся 10 белых, 20 красных, 30 синих и 40 зеленых шариков. Какое количество информации будет содержать сообщение о цвете вынутого шарика.

  4. Поступили заявки на оборудование из трех городов: А (10 заявок), В 40 заявок), С (30 заявок). Не удалось выполнить только одну из них. Какое количество информации, содержится в сообщении о том, что не выполнена заявка из города В?

  1. Алфавитный подход к измерению информации. Для человека количество информации зависит от ее понятности и новизны, т.е. с точки зрения уменьшения неопределенности наших знаний (энтропии). Любое техническое устройство работает с данными и использует алфавитный подход к измерению информации, так как сигналы кодируют определенные символы в соответствии с алфавитом. Мощность алфавита – полное количество его символов, включая буквы, цифры, знаки препинания и специальные символы. Чем больше мощность алфавита, тем большее количество информации несет один символ.

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

1) Найти мощность алфавита – N.

2) Найти информационный объем одного символа Ic по формуле Хартли (1).

3) Найти количество символов в сообщении К.

4)Найти информационный объем всего сообщения (количество информации) по формуле

I=Iс ∙К, (5)

Пример: Найти объем информации, содержащейся в тексте из 1000 символов, написанном русскими буквами.

Решение: Используем алгоритм:

  1. Найдем мощность алфавита N=33 русских прописных букв +33 русских строчных букв +21 спец.знаков=87 символов

  2. Информационный объем одного символа по формуле (1):

Iс=log2 87=6,4 бит

  1. Количество символов в сообщении К=1000

  2. Информационный объем всего сообщения по формуле (5):

I=6,4∙1000=6400 бит.

Задания: 1) Текст из 1000 символов написан на английском, на русском и на греческом языках. Сравнить объемы информации, содержащейся в текстах.

2) Ученик читает текст со скоростью 250 символов в минуту. Текст использует алфавит из 64 символов. Какой объем информации получит ученик, если непрерывно будет читать 30 минут?

Рекомендуемая литература по теме практического занятия: ЭУК по информатике, раздел 1.4.

studfiles.net


Смотрите также