О битах, байтах и двоичной системе.

Вернуться

        Когда человек начинает знакомиться с компьютером то, буквально сразу, ему приходится столкнуться со словом байт и производными от него килобайт и мегабайт. Молодые люди в разговорах о компах, мобильниках и флэшках просто сыплют этими терминами. Одна девочка на вопрос о памяти моего компьютера пренебрежительно хмыкнула: Всего два гигабайта, да у моей сестры на мобильном телефоне 32. Так что же это за байты такие и почему их должно быть много?
        Если вы попытаетесь выяснить о байте что то более подробное, то вам с удовольствием скажут, что это единица измерения объема памяти и, естественно, что чем этих байт больше, тем лучше. В случае попыток более подробного выяснения сути термина, разъяснения очень редко бывают вразумительными.
        Моя статья это не строго научное, а скорее популярное изложение. Я не буду вас сильно нагружать сложностями информационных технологий.  Изложение некоторых вопросов упрощено из соображений понимания сути. Так что же такое БАЙТ?

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

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

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

  -  Каждый символ СМС-ки на экране телефона в его недрах хранится в форме числа.
-  Каждый кусочек мелодии вылетающей из того же мобильника хранится в нем в виде числа.
-  Цвет каждой точки экранов мониторов, а теперь и телевизоров присутствует внутри этого устройства в виде числа.
-  Цифры и символы на экранах часов, термометров, микроволновок, приемников, MP3-плейеров и других электронных штучек тоже хранятся в их недрах в форме чисел.
 

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

        Здесь без небольшого экскурса в историю никак не обойтись. Простой способ хранения подобия чисел был изобретен очень давно для жаккардовых машин, которые по программе ткали определенный рисунок. Для этого делались длинные ленты из плотного картона с дырочками, согласно которых этот рисунок и выполнялся. Вот в начале и ЭВМ (электронно-вычислительные машины - понимай, что компьютеры) хранили информацию на перфокартах, а потом на перфоленте - на них тоже имелись дырочки, которые в данном случае обозначали числовые данные. Но, затем им на смену пришли магнитные носители: дискеты и жесткие диски. Затем CD и DVD диски, а затем и флэш-накопители.

        Как же можно хранить числовые данные на этих устройствах? Возьмем, к примеру дискетку. Можно, например, маленькие кусочки ее поверхности намагничивать и затем считывающая головка, как у старого доброго магнитофона, "прочитает" эту намагниченность в виде электрического сигнала. Разный уровень намагниченности можно интерпретировать в разные числа. Казалось бы решение есть, ан нет. Главная проблема состоит в том, что технически сложно определить какую намагниченность каким числом обозначить. Тем более сложно изготовить и отладить массово такие устройства.
        Что же у нас осталось, а остался один вариант: намагниченный кусочек поверхности это одно число, а не намагниченный другое. И это означает, что цифровые устройства, использующие принцип магнитной записи могут надежно хранить только два состояния. И по логике получается, что в каждом элементарном кусочке можно записать или число НОЛЬ, если поверхность не намагничена или ЕДИНИЦУ, если она намагничена. Негусто получается. Выходит и на компакт диске, если поверхность зеркальная, то луч лазера от нее отразится, а если она подпорчена более мощным лазером, то отразиться не сможет. Точно так же полупроводниковый переход во флэш-памяти может проводить или не проводить электрический ток. Ну и, наконец, в работающем электронном устройстве на элементарном проводнике напряжение может присутствовать или отсутствовать.


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

    Раз мы имеем только две цифры для обозначения чисел, то и система, а попросту сказать способ или правила их обозначения, называются ДВОИЧНОЙ системой счисления.

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

        Что же такое двоичная система счисления, и с чем ее едят?

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

        В нашей родной ДЕСЯТИЧНОЙ системе мы привыкли к краткой записи чисел и никто ее таковой не считает. Кроме школьников мало, кто вспомнит, что наша десятичная система - позиционная и вес цифры в числе (ее количественное выражение) зависит от ее положения в записи этого числа. Извините за цитату из арифметики для 4-го класса.

    На самом деле все элементарно. Возьмем число, ну например, 555. Любой малолетка вам скажет, что на первую пятерку из этого числа можно неплохо развлечься, сходив в парк аттракционов или в кафе. А вот на последнюю, и на трамвае не прокатишься. Ясно, что первая пятерка обозначает пять сотен, вторая пять десятков, а третья 5 единиц. Вернемся опять к "большой" науке. В арифметике разрядность повышается справа налево, а это значит, что счет этих разрядов ведется от единиц к десяткам, сотням и так далее.
 
        Я уже говорил вам, что в случае с числом 555 мы имеем его краткую форму записи. А чтобы все поставить на свои места рассмотрим его развернутую форму. 555 = 5x100 + 5x10 + 5. А если еще подробнее?

    Сотни у нас получились из 5 умножить на 10 в квадрате, а десятки из 5 умножить на 10. Везде эта 10. А как же, система то десятичная. Сейчас опять придется вспоминать школу.

    Запишем нашу развернутую форму по всем правилам математики. 555 = 5*10^2 + 5*10^1 + 5*10^0. Вот именно таким способом и должны записываться все числа, но мы уже привыкли к краткой форме записи, хотя подразумевается именно эти четкие правила.

        Мы, похоже, очень сильно отвлеклись, но это не случайно. Надеюсь, всем стало ясно то, по каким правилам формируются числа в десятичной системе счисления. Открою вам огромный секрет: по тем же самым правилам числа формируются в любой системе счисления. Будь то используемые в информационных технологиях ДВОИЧНАЯ, ВОСЬМЕРИЧНАЯ или ШЕСТНАДЦАТЕРИЧНАЯ. Или любые другие, которыми любят мучить выпускников школ на ЕГЭ по информатике.

        Так что же наше число 1001 в двоичной системе. Давайте применим к нему только что разобранное правило для развернутой записи чисел. Как вы догадались 1001 это краткая форма записи числа. Итак, один умножить на что? А какая у нас система счисления - двоичная. А какой у нас разряд -  третий справа, начиная с нулевого.

    Значит поехали... 1001 = 1*2^3 + 0*2^2 + 0*2^1 + 1*2^0. Итого получается 9 в десятичной.

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

    В нулевом разряде - единица несет однёрку. В первом после нулевого слева единица обладает весом двойки. То есть двоичное число 10 это в десятичной - 2, а двоичное 11 в десятичной будет равно 3-м. Необычно, непривычно и непонятно! Ничего страшного: мы сейчас примерчики рассмотрим.

        На дискетке при чтении встретились намагниченные участки в таком порядке: намагниченный, не намагниченный, намагниченный, не намагниченный. Значит эту последовательность можно представить так: 1010. Давайте выясним, какое десятичное число здесь записано. Вспомним, что вес каждой цифры равен ее произведению на двойку в степени позиции разряда, начиная с нулевого. А? Как умно!

    Давайте просто распишем наше число 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0. Мы видим, что там, где стоит 0 не нужно ничего считать, потому, что любое число умноженное на ноль дает ноль. А вот вес разрядов с единицей может быть представлен двойкой в степени позиции разряда. В итоге мы имеем для десятичного числа: 8 +0 +2 + 0 = 10.

    Я вам распишу, а вы проверьте, вес разрядов с 10-го по 0-й.
 
2 в 10-й 2 в 9-й 2 в 8-й 2 в 7-й 2 в 6-й 2 в 5-й 2 в 4-й 2 в 3-й 2 во 2-й 2 в 1-й 2 в  0-й
1024 512 256 128 64 32 16 8 4 2 1

Вот теперь задача упрощается, например для "очень большого числа" 1100110:

Число 1100110 Распишем по ячейкам 1 1 0 0 1 1 0  
Проставим разряды 6 5 4 3 2 1 0  
Вес каждого разряда 64 32 0 0 4 2 0  
Итого для десятичной системы 64 32 0 0 4 2 0  = 102


        Да, двоичная система имеет недостаток: громоздкая запись числа. Но, зато, какое преимущество: простота - всего две цифры.

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

        А, что же байт? Вы еще не забыли с чего все началось? Немного терпения, скоро выяснится и это.

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

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

    Рассмотрим один элементарный проводник: это может быть 5 Вольт или 0 Вольт, то есть числа 1 и 0 в числовом выражении. Мы не можем заранее знать, какое напряжение, читай - число выдаст микросхема. Ноль или единица, конечно же очень мало. Но с чего то надо начать и  значит это устройство уже имеет определенный объем памяти.

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

        С битом разобрались, значит запоминаем: элементарный участок поверхности дискеты: намагничен или нет - один бит. Отражение или не отражение лазерного луча - один бит. Проводящий или запертый полупроводниковый переход флэшки - один бит. Бит это элементарная исходная единица информации. Информация о двух состояниях какого ни будь объекта - меньше не бывает.
        Память емкостью 1 бит - это очень мало. Но, как мы убедились выше, комбинацией из нулей и единиц можно представить любое число. Вот если на трех выводах микросхемы мы имеем такую комбинацию: 5 Вольт - 0 Вольт - 5 Вольт, то в действительности это число: 101 или 5 в десятичной системе.


    Посмотрите, здесь уже используются три разряда для хранения числа и в этих трех разрядах мы уже можем хранить не только 0 и 1. А какие еще числа? Например, 2 можем? Пожалуйста: 010. А три? Пожалуйста: 011. А четыре? Пожалуйста: 100. Проверьте: единица во втором разряде справа начиная с нуля это 2 во второй степени, значит четыре. Дальше - 101 это 5. 110 это 6. 111 - это 7. И вообще то все. Чтобы увеличить диапазон хранимых чисел нужно увеличивать разрядность числа. Ну в этом проблем нет.

        Только, давайте немного задержимся здесь и выясним, что максимальное число для трех разрядов - 7. Начиная с 0 выходит всего 8 комбинаций. Микросхема имеет три вывода, каждый из них сам по себе имеет информационную емкость (какой умный термин) 1Бит. Три вывода имеют емкость, естественно, три бита. И в этих трех битах может храниться любое из чисел от 0 до 7. Всего 8 состояний. По научному 2 в третей степени.

        Если последний абзац вам абсолютно понятен. И если вы с легкостью можете сказать следующее: ну как же; 3 бита это два в третьей степени - восемь состояний. А тогда 4 бита 2 в 4-й 16 состояний. И в этом случае вы совершенно четко представляете, что в микросхеме с четырьмя выводами, то есть, имеющей информационную емкость 4 бита может храниться 16 различных чисел от 0 до 15, то я считаю задачу этой статьи выполненной.

    А что же байт? Заладили: а что же с байтом, а что же с байтом; как в эпилоге Бальзаковской "Шагреневой кожи", а что же с Полиной.

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


   
И вот, емкость ячейки памяти, которая имеет в двоичной системе счисления 8 разрядов и обозначили словом байт.


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

       Если вы прочитали статью внимательно, то для вас не будет открытием, что


память объемом 1 байт может хранить число от 0 до 255
.
 

0, если все разряды нулевые и 255, если все равны 1.

    Но, почему, все таки 8? Может быть потому, что, сопоставив каждому из чисел этого набора по символу, оказалось очень удобно числовую информацию интерпретировать в виде текста, ведь числами от 0 до 255 можно условно закодировать символы любого алфавита.  Но, оказалось, что это было временным решением проблемы. Допустим, что 26 больших и 26 маленьких английских и 66 русских, плюс цифры, знаки пунктуации и специальные символы еще можно упрятать в 255, то тем, кто использует иероглифы такая система не подойдет - слишком их много. 

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

P.S.  Для упрощения  изложения, я использовал некоторые условности: например, напряжение на выводах современных микросхем может быть другим, а не только 5 вольт, как на старинных цифровых устройствах. Главным остается принцип: напряжение есть - цифра 1, нет напряжения  - цифра 0.

Другая информатика. (C) Публикация на draginf.ru. При использовании материалов ссылка на сайт обязательна.