Это одна ячейка памяти в компьютере
Сразу дисклеймер - в этой статье все будет максимально упрощено, чтобы понять суть, а не показать детально как работают все современные компьютеры с особенностями архитектуры новых процессоров.
Как устроена память компьютера?
Все данные в компьютере хранятся в памяти в ячейках, процессор может получать данные из памяти определенными порциями (ячейками). Ячейка может быть размером от 8 бит до 64 бит. Когда вы слышите о 64-битной архитектуре компьютера (а точнее, процессора), это означает, что там будут 64-битные ячейки (условно).
Раньше, в 80-е и 90-е годы, были только 8-битные компьютеры, затем появились 16-, 32- и наконец 64-битные.
Что такое бит информации?
Что такое 8 бит? Представьте, что 8 бит это набор (одна ячейка) яиц в магазине (обычно они идут по 10, но представим, что у нас будет 8 в одной ячейке). Каждый бит это одна единица информации, которая может принимать значение 0 или 1. На примере яиц, представьте, что ячейка может быть пустой (значение 0) или полной, то есть с яйцом (значение 1).
Яйца в магазине могут быть по 10, 20 или 30, потому что нам так удобнее считать в десятичной системе. Однако, на самом нижнем уровне, компьютер считает в двоичной системе, потому что базовая единица памяти - это транзистор, который может быть только в двух состояниях: выключен (значение 0) или включен (значение 1). Другими словами, транзистор - это выключатель.
Какие значения можно хранить в 8 битах?
Итак, 8 бит = ячейка из 8 яиц, где в каждом месте либо есть яйцо (значение 1), либо нет (значение 0).
Вот пример заполненной ячейки:
11111111 (8 ячеек = 8 единиц = 8 яиц)
Вот пример пустой ячейки:
00000000 (8 ячеек = 8 нулей = 0 яиц)
Какое 10-тичное значения можно записать в ячейку яиц?
11111111 - это максимальное число, которое можно записать в ячейку 8-битной памяти.
00000000 - это минимальное число.
В один бит можно записать только два значения: 0 или 1.
В два бита можно записать 4 значения: 00, 01, 10, 11.
То есть вы комбинируете заполненные и незаполненные ячейки, и получаете 4 варианта раскладки (потренируйтесь на 8 ячеек яиц, чтобы получить 4 разных комбинации).
В три бита можно записать 8 значений: 000, 001, 010, 011, 100, 101, 110, 111.
И так далее, иными словами, добавление одного бита к ячейке памяти означает увеличение емкости (максимального значения) в два раза (то есть возведение в степень x2).
Не трудно догадаться (и проверить на примере яичной ячейки из 8 секций), что максимальное количество разных значений (разных комбинаций раскладки яиц в 8 ячейках) можно записать в 8 бит равно 256, а в 16 бит - 65535, то есть 16 бит - это гораздо больше, чем в два раза.
Что можно хранить в одной ячейки из 8 бит?
Вернемся к нашим 8 битам и 256 возможным значениям. Теперь как же нам хранить информацию о цифрах, буквах и символах в памяти компьютера?
Очень просто, мы договариваемся (выпускаем общий стандарт, обязательный для всех персональных компьютеров), в котором сами назначаем каждому значению какой-то символ, например:
значение 0 (оно же 00000000) будет равно символу NULL (то есть никакому символу);
значение 48 (оно же 00110000) будет равно символу 0 (цифра 0 в нашей родной десятичной системе счисления);
значение 49 (оно же 00110001) будет равно символу 1 (цифра 1 в нашей родной десятичной системе счисления) и так далее.
Где-то мы присваиваем значения всем буквам и маленьким и большим символам.
Так и возникла первая кодировка для PC (персональный компьютер) под названием ASCII.
Чтобы окончательно сломать себе мозг, и все понять на практике можете попрактиковаться на языке BrainFuck (типа аналого ассемблера, только веселее).
Материал создал при поддержке канала KodduuPython. Спасибо за внимание.
А вот как выглядит программа Hello World на языке BrainFuck:
Программа Hello World на BrainFuck!