Бит и байт что это такое


Биты и Байты - основные единицы измерения информации

Чтобы досканально разобраться что такое Биты, что такое Байты и зачем всё это нужно, давайте сначала стоит немного остановимся на понятии «Информация», так как именно на ней построена работа вычислительной техники и сетей передачи данных, в том числе и нашего любимого Интернета.
Для человека, Информация — это некие знания или сведения, которыми обмениваются люди в процессе общения. Сначала знаниями обменивались устно, передавая друг другу, затем появилась письменность и информацию стали передавать уже с помощью рукописей, а затем уже и книг. Для вычислительных систем Информация — это данные которые собираются, обрабатываются, сохраняются и передаются дальше между звеньями системы, либо между разными компьютерными системами. Но если раньше информация помещалась в книги и её объём можно было хоть как-то наглядно оценить, например в библиотеке, то в условиях цифровых технологий она стала вирутальной и её нельзя измерить с помощью обычной и привычной метрической системы, к которой мы привыкли. Поэтому были введены единицы измерения информации — Биты и Байты.

Бит информации

В компьютере информация хранится на специальных носителях. Вот самые основные и знакомые большинству из нас:

- жесткий диск (HDD, SSD)
 - оптический диск (CD, DVD)
 - съёмные USB-диски (флешки, USB-HDD)
 - карты памяти (SD, microSD и т.п.)

Ваш персональный компьютер или ноутбук получает информацию, в основном в виде файлов с различным объёмом данных. Каждый из этих файлов любой носитель данных на аппаратном уровне получает, обрабатывает, хранит и передаёт в виде последовательности сигналов. Есть сигнал — единица, нет сигнала — ноль. Таким образом вся храняшаяся на жестком диске информация — документы, музыка, фильмы, игры — предствалена в виде нулей: 0 и единиц: 1. Эта система исчисления называется двоичной (используется всего два числа).
Вот одна единица информации (без разницы 0 это или 1) и называеся бит. Само слово bit пришло к нам как аббревиатура от binary digit — двоичное число. Что примечательно, в английском языке есть слово bit — немного, кусочек. Таким образом, бит — это самая наименьшая единица объёма информации.

Сколько битов в Байте

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

00000001
 10000000
 11111111

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

Килобайт, Мегабайт, Гигабайт

Со временем, объёмы информации росли, причём в последние годы в геометрической прогрессии. Поэтому, решено было использовать приставки метрической системы СИ: Кило, Мега, Гига, Тера и т.п.
Приставка «кило» означает 1000, приставка «мега» подразумевает миллион, «гига» — миллиард и т.д. При этом нельзя проводить аналогии между обычным килобитом и килобайтом. Дело в том, что килобайт — это отнюдь не тысяча байт, а 2 в 10-й степени, то есть 1024 байт.

Соответственно, мегабайт — это 1024 килобайт или 1048576 байт.
Гигабайт получается равен 1024 мегабайт или 1048576 килобайт или 1073741824 байт.

Для простоты можно использовать такую таблицу:

Для примера хочу привести вот такие цифры:
Стандартный лист А4 с печатным текстом занимает в средем около 100 килобайт
Обычная фотография на простой цифровой фотоаппарат — 5-8 мегабайт
Фотографии, сделанные на профессиональный фотоаппарат — 12-18 мегабайт
Музыкальный трек формата mp3 среднего качества на 5 минут — около 10 мегабайт.
Обычный фильм на 90 минут, сжатый в обычном качестве — 1,5-2 гигабайта
Тот же фильм в HD-качестве — от 20 до 40 гигабайт.

P.S.:
Теперь отвечу на вопросы, которые мне наиболее часто задают новички.
1. Сколько Килобит в Мегабите? Ответ — 1000 килобит (по системе СИ)
2. Сколько Килобайт в Мегабайте? Ответ — 1024 Килобайта
3. Сколько Килобит в Мегабайте? Ответ — 8192 килобита
4. Сколько Килобайт в Гигабайте? Ответ — 1 048 576 Килобайт.

Биты и байты - что такое и в чем разница

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

Бит

Биты это количество информации, равное одному символу или сигналу, которые могут принимать только два значения (да/нет, включено/выключено, 1/0). Ноль и единица взяты из двоичной системы исчисления. Собственно, само слово bit происходит от binary digit — двоичное число. По сути, бит это своеобразная точка отсчёта, базовая единица измерения количества информации.

С помощью лампы можно передать один бит информации.

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

Вопреки распространённому мнению, в русском языке нет сокращения для слова «бит». Таким образом, правильно писать не «Мб», а «Мбит» и т.п. Это касается и англоязычного написания: «Mbit» — правильно, «Mb» — нет.

Байт

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

Сам термин byte является преднамеренным искажением слова bite (с английского «кусок», «то, что можно отделить за один укус»).  Замена буквы произведена с той целью, чтобы не было путаницы с битами.

Бит и байт

Байт имеет сокращение «Б» («B» в английской версии написания). Таким образом, написания «МБ», «ГБ» («MB», «GB») и тому подобные являются допустимыми и позволяют избежать путаницы с мегабитами, гигабитами и т.д.

Байты и биты – чем отличаются, что измеряют [ОБЗОР]

В этой статье расскажу Вам про такие единицы измерения компьютерной информации как Байты и Биты — меня часто спрашивали читатели про эту сладкую парочку в комментариях.

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

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

Работа с данными

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

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

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

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



Читайте также на сайте:

...

...

Что такое байт

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

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

Другими словами, в одном байте содержится 8 бит. Эту информацию нет необходимости знать в обязательном порядке, однако её понимание позволит досконально оценить размеры информации на том или ином носителе.

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

После этого Вы сможете ввести любое число и нажать на кнопку «Bin». В результате отобразится кодовый шифр для указанного числа. К примеру, для 100 это будет «1100100».

Чтобы понять, каким двоичным кодом отображаются буквы и слова, можно воспользоваться таблицей символов, которая также присутствует в каждой операционной системе Windows. Для этого вам нужно будет зайти в меню Пуск, после чего открыть стандартные программы и перейти в раздел «Служебные».

Там выберете символьную таблицу. Перед Вами откроется окно с различными знаками. При этом, Вы также можете выбрать стиль набора. Далее выделите один символ, и увидите его код в служебной строке…


Производные от битов бит и байтов

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

Схема преобразований выглядит следующим образом:

  1. 1 килобайт – 1 024 байта.
  2. 1 мегабайт – 1 048 576 байтов.
  3. 1 гигабайт – 1 073 741 842 байта.
  4. 1 терабайт – 1 099 511 627 776 байтов.

Воспользовавшись этой таблицей Вы с лёгкостью сможете пересчитывать объёмы информации, хранящиеся на том или ином устройстве. Для наглядности, можно привести пример: один печатный лист формата А4 – это в среднем 100 килобайт, 1 фильм среднего качества – 1.5 гигабайта, фото среднего качества – 2 мегабайта.

Теперь Вы знаете, чем отличаются, а также, что измеряют Байты и Биты. До новых полезных компьютерных программ и интересных приложений для Андроид.

ПОЛЕЗНОЕ ВИДЕО

...

...

Я только обозреваю программы! Любые претензии - к их производителям!

Рекомендую ещё посмотреть обзоры...

Реальный "Ускоритель компьютера"

Программа заметно ускорит любой компьютер за счет мощной очистки от цифрового мусора, лишних "хвостов" удаленного софта, умной оптимизации реестра Windows и автозагрузки...


Оставить комментарий

Что такое информация. Что такое бит и байт. Сколько килобайт в мегабайте

Как известно, компьютер оперирует информацией, однако очевидно, что не так, как мы. Каким же образом и как измерить эту информацию? Что же такое информация? Давайте разбираться! Для тех, кому нужно перевести биты, байты, килобайты, мегабайты, гигабайты, терабайты, я сделал удобную «считалку», которую Вы сможете скачать в конце статьи.

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

Уже не раз упоминалось то, что компьютер обрабатывает информацию с помощью устройств в системном блоке, что она передается от устройства к устройству в системном блоке с помощью кабелей. Также Вы уже знаете, что есть внешние устройства, например, устройства ввода (клавиатура и мышь, к примеру), с помощью которых мы можем отдавать команды компьютеру, а значит они тоже передают некую информацию. Для этого они подключаются к разъемам. Мы уже научились подключать некоторые устройства. Ну и, наконец, обработанная информация используется нами. Например, она возвращается к нам через устройства вывода, примером чему служит изображение на мониторе. Все мы привыкли к информации как, например, буквы в книге, наши записи в ежедневнике. Тут все просто: информация хранится в книге в виде текста, а книга на полке в библиотеке. А как Вы могли уже прочитать, информация в компьютере хранится на носителях. Вот, например, жесткий диск (про него читаем здесь) в системном блоке (он на фото)

Мы можем прочитать только то, что на наклейке, да и то непонятно значение большинства надписей. Однако в этой небольшой железяке, которую можно положить в карман, могут храниться миллионы книг и документов, тысячи изображений, аудио- и видеозаписей. Каким же образом? Дело в том, что компьютер — это машина, по проводам течет ток, и компьютер не может воспринимать ту же книгу или окружающий мир как мы. Зато прекрасно может определить есть сигнал или нет, ну или же маленькое или большое напряжение соответственно. Таким образом, компьютер может воспринять информацию о наличии или отсутствии сигнала как «да» или «нет» или, в цифровом эквиваленте, 0 или 1. Таким образом мы имеем нехитрую систему из нуля и единицы, которая и называется двоичной, так как цифры всего две. Одна цифра (0 или 1) называется бит — это самая маленькая единица компьютерной информации. Её компьютер и может хранить и передавать. Однако это очень мало, как же хранить, к примеру, слова?

Что такое байт. Сколько бит в байте.

Вы, наверное, слыхали про азбуку Морзе, где комбинации длинных и коротких сигналов (точек и тире) расшифровывались в слова. А если взять комбинацию из 8 цифр, каждая из которых может быть единицей или нулем, то получим 256 комбинаций, чего хватит для отображения и цифр и букв, причем и не одного алфавита. И вот эти 8 бит называются байтом. Таким образом в байте 8 бит. Это необязательно держать в голове или учить наизусть, можно работать на компьютере и без таких знаний, но Вам все же придется оценивать размер информации. Мерять информацию битами и даже байтами сложновато, потому как объёмы информации гораздо больше.

Что такое килобайт, мегабайт и гигабайт. Как перевести килобайты в мегабайты и гигабайты в мегабайты.

В десятичной системе исчисления мы используем приставки, чтобы обозначить большое число. Например: приставка кило- означает, что указанное число надо умножить на тысячу. 1 килограмм = 1000 грамм. Но килобайт — это не тысяча байт, а 2 в степени 10, то есть 1024 байт, что не совсем корректно. К этому сложновато сперва привыкнуть, даже есть такой анекдот:

— Чем отличается программист от обычного человека?

— Программист думает, что килограмм колбасы — это 1024 грамма, а обычный человек думает, что килобайт — это 1000 байт.

Приставка мега- предполагает миллион, но мегабайт — это опять же 1024 килобайт или 1048576 байт. Как видите, мегабайт больше килобайта. Гигабайт — это 1024 мегабайт = 1048576 килобайт = 1073741824 байт. Терабайт — это 1024 гигабайт соответственно.

Название

Обозначение

Сколько было бы в десятичной системе

В двоичной

В байтах

Байт

B

20

   1

Килобайт

kB

103 = 1 000

210

   1024

Мегабайт

MB

106 = 1 000 000

220

   1 048 576

Гигабайт

GB

109 = 1 000 000 000

230

   1 073 741 824

Терабайт

TB

1012 = 1 000 000 000 000

240

   1 099 511 627 776

Петабайт

PB

1015

250

   1 125 899 906 842 624

Вот самые распространенные единицы измерения объёма информации. Чтобы перевести килобайты в мегабайты, надо разделить их на 1024, а чтобы перевести гигабайты в мегабайты надо их умножить на 1024. Было предложено для устранения путаницы использовать для двоичных приставок «би», но кибибайт и мебибайт звучат не очень приятно и непривычно, поэтому они пока не прижились.

 

Чтобы понять, что будет представлять собой привычная нам вещь в электронном виде ( в плане объема), дам примерные цифры:

  • Содержимое печатного листа А4 — 100 килобайт
  • 1,5 часа фильма в невысоком (для современных масштабов) качестве — 1,5 гигабайта. В высоком может быть и 40 гигабайт.
  • Фото среднего качества — 1-1,5 мегабайт
  • Аудиозапись среднего качества 3-5 минут — 10 мегабайт
Из этой статьи Вы узнали:
  • Что такое информация
  • Как информация представлена в компьютере
  • Что такое бит
  • Что такое байт
  • Какие есть приставки для измерения больших величин информации
  • Как перевести килобайты в мегабайты
  • Сколько мегабайт в гигабайте и многое другое

Насколько вам была полезна статья?

Кликните по звездочке, чтобы оставить оценку!

Submit Rating

Средний рейтинг / 5. Оценок:

Нам очень жаль, что статья вам не понравилась!

Помогите нам ее улучшить!

Скажите, как мы можем улучшить статью?

Отправить ответ

Спасибо за обратную связь!

Чем отличается бит от байта? - "TK-net"

Скорость и размер:

Размер:

байт (англ. byte) — единица хранения и обработки цифровой информации.
бит (англ. bit) - минимальная единица измерения информации.

Скорость:

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

бит в секунду — бит/c (bps) англ. bits per second
килобит в секунду — Кбит/c (Kbps)
мегабит в секунду — Мбит/c (Mbps)
гигабит в секунду — Гбит/c (Gbps)

байт в секунду — Б/c (Bps) англ. bytes per second
килобайт в секунду — Кб/с (KBps)
мегабайт в секунду — Мб/c (MBps)
гигабайт в секунду — Гб/c (GBps)

Основы:

кило = 1.000 (103)
мега = 1.000.000 (106)
гига = 1.000.000.000 (109)

Байты:

1 Кбайт = 1 024 байт
1 Мбайт = 1 048 576 байт (1 024 * 1 024)
1 Гбайт = 1 073 741 824 байт (1 024 * 1 024 * 1 024)
1 Тбайт = 1 099 511 627 776 байт (1 024 * 1 024 * 1 024 * 1 024)

Биты:

1 Кбит = 1 024 бита
1 Мбит = 1 048 576 бит
1 Гбит = 1 073 741 824 бита

Расчёт:

Байты в биты:

1 Байт (октет) = 8 бит
1 Кбайт (1 024 Байт) = 8 192 бит = 8 Кбит
1 Мбайт (1 048 576 Байт) = 8 388 608 бит = 8 192 Кбита = 8 Мбит
1 Гбайт (1 073 741 824 Байт) = 8 589 934 592 бита = 8 388 608 Кбит = 8 192 Мбита = 8 Гбит

Пример:

1 Гбайт (1 024 * 1 024 * 1 024) * 8 = 8 589 934 592 бита далее
8 589 934 592 : 1024 = 8 388 608 Кбит далее
8 388 608 : 1024 = 8 192 Мбита далее
8 192 : 1024 = 8 Гбит

Для ясности:

1 Кбайт = 8 Кбит
1 Мбайт = 8 Мбит
1 Гбайт = 8 Гбит

биты в Байты:

1 Кбит (1 024 бита) = 128 байт = 0,125 Кбайта
1 Мбит (1 048 576 бит) = 131 072 байта = 128 Кбайт = 0,125 Мбайта
1 Гбит (1 073 741 824 бита) = 134 217 728 Байт = 131072 Кбайта = 128 Мбайт = 0,125 Гбайта

Пример:

1 Гбит (1 024 * 1 024 * 1 024) : 8 = 134 217 728 байт далее
134 217 728 байт : 1024 = 131072 Кбайта далее
131072 Кбайта : 1024 = 128 Мбайт далее
128 Мбайт : 1024 = 0,125 Гбайта

Для ясности:

1 бит = 0,125 Байта
1 Кбит = 0,125 Кбайта
1 Мбит = 0,125 Мбайта
1 Гбит = 0,125 Гбайта

Теория:

Что бы перевести байты в биты надо умножить на 8
Что бы перевести биты в байты надо делить на 8
Что бы перевести в большую степень б >> кило >> мега >> гига и.т.д надо делить на 1 024
Что бы перевести в меньшую степень гига >> мега >> кило >> б надо умножать на 1 024

Практика:

Провайдер заявляет, что скорость моего соединения с интернет 6 мегабит/с,
а мой uTorrent показывает 730 Кб/с (KBps).
Начнём с того, что uTorrent как и все остальные менеджеры закачки,
показывает только полезную скорость,
т.е. ту с которой он закачивает на Ваш компьютер файлы,
но есть ещё и техническая информация, которая как говорит мой друг занимает около 10%.
И так, к 730 добавляем 10% это 73.
730 + 73 = 803 Кб/с (KBps), далее переводим в килобиты - Кбит/c (Kbps), для этого умножаем на 8.
803 * 8 = 6424 Кбит/c (Kbps), далее переводим в мегабиты - Мбит/c (Mbps), для этого делим на 1 024.
6424 : 1024 = 6,2 Мбит/c (Mbps).
Теперь я знаю, что мой провайдер честно даёт мне 6,2 мегабит/с

Время скачивания:

Теперь мы хотим узнать, сколько времени нам понадобится на скачивание файла,
размером к примеру 7 Гбайт, на скорости 730 Кб/с.
Для этого мы переводим 7 Гбайт в байты, для точности расчётов, а затем Байты переведём в Кбайты, поскольку наша скорость измеряется в Кбайтах в секунду, т.е. Кбайты надо будет поделить на количество секунд.
1 Гбайт это - 1 073 741 824 Байт, значит 7 Гбайт в 7 раз больше, умножаем на 7 и получаем - 7 516 192 768 Байт, далее переводим Байты в килобайты,
7 516 192 768 : 1 024 = 7 340 032 Кбайт, и теперь мы делим полученное число Кбайт на скорость (количество Кбайт скачиваемое за одну секунду), и получаем количество секунд, требуемое на скачивание этого файла,
7 340 032 : 730 = 10054 сек, далее переводим секунды в минуты и часы
10054 : 60 = 167 минут, это 2 часа 47 минут.

Для ясности:

730 Кб/с это значит, что за одну секунду у нас закачивается 730 Килобайт, значит за 10 секунд 7.1 мегаБайт, а за 100 секунд 71.2 мегаБайта. Если 60 секунд умножить на 60 минут, то мы узнаём, что в одном часе 3600 секунд и если умножить это число на 730, то мы получим, что за 1 час мы скачиваем 2.5 гигаБайта, соответственно, за 3 часа 7.5 Гигабайт, а это примерно совпадает с нашими расчётами, значит всё правильно, вот такая математика. :)

Бит, байт и простое объяснение логических операций.

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

 

Бит - (англ. binary digit; также игра слов: англ. bit — немного) — единица измерения информации, один разряд двоичного кода (двоичная цифра).  Бит может принимать только два значения "0" или "1", да или нет, включено/выключено, и т. п. В вычислительной технике  "0" и "1"  передаются различными уровнями напряжения, к примеру, в микросхемах  ТТЛ  "0" соответствует  напряжением в диапазоне от +0 до + 0,8 В, а "1" в диапазоне от 2,0 до 5,0 В"..

«Бит» часто применяется в значении «двоичный разряд»(старший бит — старший двоичный разряд байта или слова, младший бит - младший разряд слова , о которых идёт речь). Относительно к микроконтроллерам, мы часто будем сталкиваться с битами. В семействе  микроконтроллерах  PIC18XXXX существуют специальные БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ. с помощью которых можно будет сбрасывать/устанавливать определенные биты в байтах (регистрах).
 

Байт (англ. byte) — единица измерения количества информации. В стандартном виде байт считается равным восьми  двоичным цифрам (битам). Он  может принимать 256 (2 в 8 й степени) различных значений. Значениями одного байта можно кодировать довольно большие объемы информации. Например, все заглавные и строчные буквы алфавита, цифры, знаки препинания, символы и служебные коды, используемые при передаче данных.Емкость различных  устройств хранения информации, в том числе и в микроконтроллерах, измеряется тоже в байтах. Так же как при работе с битами, в семействе  микроконтроллерах  PIC18XXXX существуют и БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ, которые позволяют изменять байт "целиком" (сбрасывать, записывать в него данные (0-255) и т.д.). Младший бит находится справа, соответственно старший слева.

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

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

В предыдущей главе мы выяснили, что двоичные числа,  так же как и десятичные, можно складывать, умножать, вычитать и делить. Естественно, что эти операции можно производить и над байтами. А в  микроконтроллерах кроме этого, предусмотрены различные команды сравнения, сдвига, в том числе и команды, выполняющие простые логические операции.  Если Вы сталкивались ранее с логическими микросхемами, то соответственно сталкивались и с побитовыми логическими операциями "И", "ИЛИ", "НЕ" и исключающие ИЛИ. Для тех кто слабо понимает что это такое попробуем разобраться.

Побитовое отрицание (NOT)  (или побитовое "НЕ", или дополнение) — это бинарная операция, действие которой эквивалентно применению логического отрицания к каждому биту двоичного представления операнда. Простыми  словами, там где в двоичном представлении операнда был 0, после выполнения операции будет 1, и, наоборот, где была 1, там будет 0.  В семействе  микроконтроллерах  PIC18XXXX  есть такая команда  "COMF", которая инвертирует содержимое регистра (байта). Обозначение:

Пример:

 

1 0 1 1 1 0 0 1
0 1 0 0 0 1 1 0

 

Побитовое И (AND)— это бинарная операция, действие которой эквивалентно применению логического "И"  к каждой паре битов, которые стоят на одинаковых позициях в сравниваемых байтах . Другими словами, если оба соответствующих бита байтов равны 1, то результат двоичного разряда  будет 1; если же хотя бы один бит из пары равен 0, то результат двоичного разряда будет  0. По отношению к микроконтроллерам существуют команда  "ANDWF", к стати первые три буквы  AND как раз и говорят об  операции "И" над регистром (байтом) "F"  и   "W" (пока не будем вникать и назовем его то же байт, по сути так и есть). Обозначение: a & b

Пример:

1 0 0 1 1 1 0 1
1 1 0 0 0 1 1 1
1 0 0 0 0 1 0 1

Побитовое ИЛИ (OR)  — это бинарная операция, действие которой эквивалентно применению логического "ИЛИ"  к каждой паре битов, которые стоят на одинаковых позициях в сравниваемых байтах. Другими словами, если оба соответствующих бита байтов равны 0, то результат двоичного разряда  будет 0; если же хотя бы один бит из пары равен 1, то результат двоичного разряда будет  1. Опять же по отношению к микроконтроллерам существуют команда  "IORWF".  Обозначение: a | b

Пример:

1 0 0 0 1 1 1 1
0 0 1 0 1 0 0 0
1 0 1 0 1 1 1 1

Сложение по модулю два (XOR) (исключающее ИЛИ) —  это бинарная операция, результат действия которой равен 1, если число складываемых единичных битов нечетно, если же их число четно, то результат ,будет  0. По отношению к микроконтроллерам существуют команда  "XORWF". Обозначение: a^b

Пример:

1 1 0 0 0 1 0 0
1 0 0 0 1 1 1 0
0 1 0 0 1 0 1 0

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

В  семействе  микроконтроллерах  PIC18XXXX  есть такие команды, как RLCF, RLNCF- сдвиг регистра влево  через перенос и без переноса и RRCF, RRNC - то же самое только сдвиг регистра (байта) происходит вправо. Более подробно мы остановимся,  когда будет рассматривать  команды микроконтроллера.

Байт и бит - правила написания и область применения

Сегодня о правилах сокращения единиц измерения информации. Если можете ответить на вопрос как читается kB и Mb и где данные единицы применяются, то закрывайте страницу, иначе рекомендую статью к прочтению.

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

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

Область применения байта и бита

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

 

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

 

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

Важно знать отличие между B и b (Б и б)

  1. Большая буква “B”(на русском “Б”) это – Байт;

  2. Маленькая буква “б”(на русском “б”) это – бит;

  3. 1 Байт = 8 бит;
  4. 1 килоБайт = 2^10 байтов = 1 024 байта;

  5. 1 МегаБайт = 2^20 байтов = 1 048 576 байта;

  6. 1 ГигаБайт = 2^30 байтов = 1 073 741 824 байта.

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

Поделиться в социальных сетях

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

Перевод статьи Халида Азада — 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), что очень здорово, если Вам необходима такая проверка. Машины с порядком от старшего к младшему хранят данные в памяти в привычном для человека виде (слева направо), что упрощает низкоуровневую отладку.

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

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

Эпилог: Мысли на прощание

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

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

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

Бит и байт – минимальные единицы измерения информации

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

 

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

Бит – это только 0 («ноль») или только 1 («единичка»). С помощью одного бита можно записать два состояния: 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 Гб.

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

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

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

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

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

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


Получайте актуальные статьи по компьютерной грамотности прямо на ваш почтовый ящик.
Уже более 3.000 подписчиков

.

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

Автор: Надежда Широбокова

6 июля 2010

Что такое байт, и что такое бит. Что больше?

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

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

Что такое байт?

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

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

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

Чаще всего во внутренней архитектуре компьютера «полноценными» ячейками считаются триггеры, в которых объединено несколько байтов — 2, 4 или 8. Именно к таким группам обращаются программы за необходимыми сведениями — поскольку в группе байтов уже может быть зашифровано число или отдельное слово. В килобайте при этом содержится 1024 байта, а в мегабайте — 1 048 576 байт.

Что такое бит?

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

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

Таблица: бит, байт, килобайт, мегабайт и т.п.

Похожие статьи

Двоичные приставки — Википедия

Двоичные (бинарные) приставки — приставки перед наименованиями или обозначениями единиц измерения информации, применяемые для формирования кратных единиц, отличающихся от базовой единицы в определённое целое, являющееся целой положительной степенью числа 210, число раз (210 = 1024, (210)2 = 220 = 10242, (210)3 = 230 = 10243 и т. д.). Двоичные приставки используются для образования единиц измерения информации, кратных битам и байтам.

Благодаря близости чисел 1024 и 1000 двоичные приставки построены по аналогии со стандартными десятичными приставками СИ. Наименование каждой двоичной приставки получается заменой последнего слога наименования соответствующей десятичной приставки на би (от лат. bīnārius — двоичный).

Приставки от 210 до 260 (киби, меби, гиби, теби, пеби, эксби) были предложены шведским учёным Андерсом Тором (англ.)русск. и введены Международной электротехнической комиссией (МЭК) в 1999 году во второй поправке к стандарту IEC 60027-2[1][2]. В третьей редакции стандарта IEC 60027-2, принятой в 2005 году, были добавлены приставки 270 и 280 (зеби и йоби)[1][3].

Приказом Федерального агентства по техническому регулированию и метрологии от 9 октября 2015 года N 1508-ст «О введении в действие межгосударственного стандарта» [4] введён в действие с 1 октября 2016 года в качестве национального стандарта Российской Федерации ГОСТ IEC 60027-2-2015 «Обозначения буквенные, применяемые в электротехнике. Часть 2. Электросвязь и электроника»[5], идентичный международному стандарту IEС 60027-2:2005 «Обозначения буквенные, применяемые в электротехнике. Часть 2. Электросвязь и электроника».

Выглядят они следующим образом:

Приставка Аналогичная
десятичная
приставка
Сокращения
по МЭК для
битов, байтов
Значение, на которое
умножается исходная
величина
киби кило (103) Кибит, КиБ 210 = 1024
меби мега (106) Мибит, МиБ 220 = 1 048 576
гиби гига (109) Гибит, ГиБ 230 = 1 073 741 824
теби тера (1012) Тибит, ТиБ 240 = 1 099 511 627 776
пеби пета (1015) Пибит, ПиБ 250 = 1 125 899 906 842 624
эксби экса (1018) Эибит, ЭиБ 260 = 1 152 921 504 606 846 976
зеби зетта (1021) Зибит, ЗиБ 270 = 1 180 591 620 717 411 303 424
йоби йотта (1024) Йибит, ЙиБ 280 = 1 208 925 819 614 629 174 706 176

В российском ГОСТ 8.417-2002 («Единицы величин») в приложении А «Единицы количества информации» констатируется факт, что с наименованием «байт» «стандартные» приставки (обозначающие десятичные кратные единицы) используются некорректно, однако, не предлагается никакой альтернативы. Кроме, разве что, обозначения 1 Кбайт = 1024 байт (в отличие от 1 кбайт = 1000 байт).

Более поздний документ, «Положение о единицах величин, допускаемых к применению в Российской Федерации», утверждённое Правительством РФ 31 октября 2009 года, устанавливает, что наименование и обозначение единицы количества информации «байт» (1 байт = 8 бит) применяются с двоичными приставками «Кило», «Мега», «Гига», которые соответствуют множителям 210, 220 и 230 (1 Кбайт = 1024 байт, 1 Мбайт = 1024 Кбайт, 1 Гбайт = 1024 Мбайт). Указанные приставки пишутся с заглавной буквы[6].

Тем же Положением допускается применение и международного обозначения единицы информации с приставками «K» «M» «G» (KB, MB, GB, Kbyte, Mbyte, Gbyte).

Аналогичный стандарт IEEE 1541-2002 введён в 2008 г.

Основной документ Международной системы единиц (СИ) «Брошюра СИ» (фр. Brochure SI, англ. The SI Brochure) подчёркивает, что приставки СИ соответствуют исключительно степеням числа десять, и рекомендует во избежание некорректного использования наименований приставок СИ для двоичных приставок применять наименования, введённые МЭК[7].

9 октября 2015 года был издан приказ Федерального агентства по техническому регулированию и метрологии N 1508-ст «О введении в действие межгосударственного стандарта». Этим приказом с 1 октября 2016 года в качестве национального стандарта Российской Федерации введён в действие ГОСТ IEC 60027-2-2015 «Обозначения буквенные, применяемые в электротехнике. Часть 2. Электросвязь и электроника»[5], идентичный международному стандарту IEС 60027-2:2005 «Обозначения буквенные, применяемые в электротехнике. Часть 2. Электросвязь и электроника». Согласно этому документу, в Российской Федерации в качестве префиксов для кратных двоичных единиц измерения вводятся обозначения Ки (Ki), Ми (Mi), Ги (Gi), Ти (Ti), Пи (Pi) и т.д.

Двоичная система счисления имеет широчайшее применение в вычислительной технике. В частности, двоичными числами нумеруются ячейки цифровой памяти. Количество адресов, возможных на некоторой шине, равно 2N, где N — количество её разрядов. Поэтому и микросхемы памяти снабжают количеством ячеек, равным какой-то степени двойки.

Число 210 = 1024 достаточно близко к тысяче, используемой в качестве основания десятичных приставок СИ. Среди степеней двойки вплоть до 293 ни одна больше не близка настолько к степени десяти; к тому же показатель двоичной степени «10» сам по себе оказался удобен для грубого пересчёта двоичных степеней на привычные людям десятичные числа. Для обозначения 210 = 1024 байт придумали единицу «К» (ка, очевидно, искажённое «кило»). В частности, в документации к одной из советских ЭВМ сказано, что объём её памяти 32 К слов. Из-за близости множителей 1024 и 1000 в разговорной речи «К» всё равно называли «кило», и вскоре такая интерпретация приставки кило стала стандартом де-факто, как и экстраполяция на другие приставки: 1 «килобайт» = 1024 байтам, 1 «мегабайт» = 1024 килобайтам = 1 048 576 байтам, и т. д.

Таким образом термины, предназначенные для десятичных приставок СИ, стали применяться к близким двоичным числам. Причём эти приставки часто используют по своему усмотрению, то есть одни понимают их как двоичные приставки, а другие как десятичные. Например, размер оперативной памяти компьютера обычно приводится в двоичных единицах (1 килобайт = 1024 байтам), а размер дисков их производители указывают в десятичных (1 килобайт = 1000 байтам). Однако на письме для множителя 1024 традиционно использовалось сокращение «К», в отличие от «к»=1000, используемого в СИ.

Чем больше число, тем большего значения может достигать ошибка, вызванная неправильным пониманием использованной приставки. В частности, разница между «двоичным» и «десятичным» килобайтом 2,4 %, в то время как между двоичным и десятичным терабайтом — почти 10 % (9,95 %). Для того, чтобы разрешить эту путаницу, и были введены особые двоичные приставки, отличные от «близких» по численному значению десятичных.

Значение приставок согласно стандарту JEDEC[править | править код]

Объединенный инженерный совет по электронным устройствам (англ. Joint Electron Devices Engineering Council, JEDEC), занимающийся разработкой и продвижением стандартов для микроэлектронной промышленности, разработал в 2002 году стандарт JEDEC 100B.01ruen определяющий значения терминов и буквенных символов. Целью данного стандарта является содействие единообразному использованию символов, аббревиатур, терминов и определений в полупроводниковой промышленности. К примеру, спецификация стандарта в качестве единицы измерения количества информации определяет значение приставки K множителем, равным 1024 (210), то есть килобайт обязан быть обозначен как Kbyte или KB и иметь значение, равное 1024 байт.

Спецификация стандарта определяет приставки следующим образом:[8]

  • kilo (K): как множитель, равный 1024 (210).
  • mega (M): как множитель, равный 1 048 576 (220 или K2, где коэффициент K = 1024).
  • giga (G): как множитель, равный 1 073 741 824 (230 или K3, где коэффициент K = 1024).
  • tera (T): как множитель, равный 1 099 511 627 776 (240 или K4, где коэффициент K = 1024).

Употребление десятичных приставок (таблица)[править | править код]

Приставка Обозначение Двоичные приставки Десятичные приставки Относит.
ошибка, %
кило к, k 210 = 1024 103 = 1000 2,40
мега М, M 220 = 1 048 576 106 = 1 000 000 4,86
гига Г, G 230 = 1 073 741 824 109 = 1 000 000 000 7,37
тера Т, T 240 = 1 099 511 627 776 1012 = 1 000 000 000 000 9,95
пета П, P 250 = 1 125 899 906 842 624 1015 = 1 000 000 000 000 000 12,59
экса Э, E 260 = 1 152 921 504 606 846 976 1018 = 1 000 000 000 000 000 000 15,29
зетта З, Z 270 = 1 180 591 620 717 411 303 424 1021 = 1 000 000 000 000 000 000 000 18,06
йотта Й, Y 280 = 1 208 925 819 614 629 174 706 176 1024 = 1 000 000 000 000 000 000 000 000 20,89

Двоичный подход[править | править код]

Приставки «кило-», «мега-», «гига-» понимаются как двоичные:

  • В файловых менеджерах и другом программном обеспечении для сокращённого задания размера файлов. То есть, если программа говорит, что размер файла равен 100 «КБ» (KB), то его размер приблизительно равен 102 400 байт. Однако в некоторых современных файловых менеджерах встречается правильное указание размера файлов (с использованием сокращённой формы производных двоичных приставок, например «КиБ»).
  • Производителями полупроводниковой памяти: оперативных запоминающих устройств (ОЗУ), видеопамяти.
  • Объём компакт-диска (но не DVD) задаётся именно в двоичных мегабайтах.
  • Согласно ГОСТ 8.417-2002, приставку К- (заглавной буквой) применительно к байтам исторически некорректно[9] использовали (и используют) для обозначения 1024 байт. Стандарт, однако, явно не указывает, какое написание единицы «1024 байт» следует считать корректным.
  • «Положение о единицах величин, допускаемых к применению в Российской Федерации» устанавливает[6], что наименование и обозначение единицы количества информации «байт» применяются с двоичными приставками «Кило», «Мега» и «Гига», которые соответствуют множителям 210, 220 и 230.

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

Десятичный подход[править | править код]

Приставки «кило-», «мега-», «гига-» понимаются как десятичные:

  • Ёмкость жёстких и оптических дисков, SSD-накопителей задаётся именно в десятичных мегабайтах (исключение: компакт-диски, их объём задается в двоичных мегабайтах).
  • При неформальном общении (например, про файл в 100 тысяч байт могут сказать «файл в 100 килобайт»).
  • При обозначении скоростей телекоммуникационных соединений, например, 100 Мбит/с в стандарте 100BASE-TX («медный» Fast Ethernet) соответствует скорости передачи именно 100 000 000 бит/с, а 10 Гбит/с в стандарте 10GBASE-X (Ten Gigabit Ethernet) — 10 000 000 000 бит/с.

Основные аргументы: Строгое соответствие системе СИ; повсеместное употребление десятичной системы счисления; завышение объёма носителей при помощи более мелкой единицы («коммерческие мегабайты»).

Применяемое в телекоммуникациях понятие «килобит» означает тысячу битов (по ГОСТ 8.417-2002). Впрочем, из-за влияния «килобайта» некоторые люди и организации для однозначности употребляют вместо «килобита» выражение «тысяча бит».

Иное[править | править код]

Ёмкость трёхдюймовой дискеты на 1,44 МБ (включая служебные данные — загрузочный сектор, корневой каталог и FAT) задаётся в двоично-десятичных мегабайтах (1000 КиБ). То есть фактически вместимость трёхдюймовой дискеты равна 1440 кибибайтам, или же 1 474 560 байтам, из которых для записи доступны 1 457 664. Аналогично, трёхдюймовая дискета на 2,88 МБ в действительности вмещает 2880 кибибайт, или же 2 949 120 байт.

Ёмкость флэш-карт памяти и USB-флэшек — это полная ёмкость микросхемы (двоичная) минус технический объём, который может быть больше или меньше. Соответственно, неформатированная ёмкость флэшки — очень приблизительно десятичная (обычно несколько больше).

Степени
Традиционные битовые единицы
Традиционные байтовые единицы


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