-
В этой секции мы поговорим о самом маленьком уровне внутри
-
компьютера, а именно о битах и байтах. Итак, бит - это самый маленький объем
-
памяти, который может быть, он, что-то, вроде, атома. Бит хранит в себе только ноль или
-
единицу. И поэтому, может находиться только в этих двух состояниях. Вы, возможно, слышали о компьютерном
-
выражении, состоящем полностью из нолей и единиц. Это относится к битам.
-
Все в компьютере построено на этом увеличивающимся и увеличивающимся количестве
-
простых битов, которые представлены либо нулем, либо единицей. Поэтому, все, что может наше
-
оборудование - это принимать два различных состояния.
-
Это то, как вы можете представить себе биты в оборудовании. Существует
-
множество разных способов сделать это (установить на нуле или единице). Покажем на примере этой
-
теннисной ракетки с куском пластика внутри. И
-
способ, на котором все основано - это принимать два различных состояния. Допустим, у меня есть
-
состояние "ноль" и потом я просто, вот так, меняю его на противоположное -"единицу". Пластик
-
передвигается и замирает, назовем это "единицей". Потом я могу вернуть его обратно
-
на "ноль" Ну да, это самый простой пример, но даже он показывает нам, что
-
существует только два состояния и это непоколебимо.
-
Этого достаточно для представления бита в компьютере и мы видим
-
эти различные формы так же, как и в транзисторе. Два разных состояния
-
созданы крошечной группкой электронов. На плате жесткого диска
-
они представлены имением либо установкой в отношении Южного и Северного
-
Магнетизмов и позже, мы можем вернуться назад, чтобы посмотреть на них и сказать, допустим,
-
если Северный - это единица, если Южный - то ноль.
-
Сам по себе бит слишком мал, чтобы быть хорошим для чего-то. Это слишком просто, понмаете?
-
Ноль и единица,.. все, что мы будем делать - это группировать восемь битов,
-
чтобы создать байт. И именно байт - самая распространенная единица измерения. Если, например,
-
байт выписан, я мог бы думать о нем так - хорошо, что
-
у нас только восемь цифр, но эти цифры - двоичны, так что каждая из них - всего лишь
-
ноль или единица. И поэтому, о любых восьми, о любом байте мы могли бы думать, как об
-
образце 8ми, 8ми, нуля или единицы. Как я уже сказал, в реальном мире байт - это, как
-
если бы вы напечатали одну букву, т.е. очень, очень маленький.
-
Он содержит, содержит очень мало, но вы можете построить с его помощью, что-то более существенное.
-
Вопрос, который бы я хотел рассмотреть, это "Сколько именно может хранить один байт?". Используем
-
для этого математику. Необязательно знать все детали, но
-
я хочу представить это, только чтобы вы поняли. Итак,
-
вопрос, который я собираюсь обсудить - это, если у меня есть определенное количество битов,
-
сколько из него получится моделей? Во-первых,
-
просто посчитаем один, два и три бита. Для этого, я внесу их в
-
маленькую табличку. Итак, если у меня есть только один бит, я мог бы это сравнить с нашей рукой -
-
т.е. будет только две модели. Либо единица, либо ноль. Нет, какого-то определенного
-
образца и две модели - это все, что мы можем построить. Теперь предположим, у нас два бита.
-
Установим их рядом друг с другом, говоря как о левом и правом битах
-
и теперь построим из них модели. Как видим,
-
получатся образцы, в котором оба бита равны нулю, дальше такой, где
-
левый - ноль, а правый - единица, еще со значениями левого - единица, а правого - ноль,
-
и такой, где, наконец, оба бита
-
представлены единицами. Таким образом, из двух битов мы можем получить четыре модели. Для трех битов все
-
будет немного сложнее. Посмотрим, сколько получится моделей из
-
этого количества битов.
-
Фокус в том, что "истина" будет здесь. Представим
-
эти три бита рядом с друг другом, и рассмотрим самый левый из них.
-
Давайте изолируем его. И увидим только две возможности.
-
Или этот левый бит ноль, или единица. Только две эти возможности.
-
Теперь давайте разберем случай, когда он представлен нулем.
-
Итак, если он - ноль, то мы получим верхний ряд. Если я просто заблокирую самый левый
-
бит на нуле, тогда у меня получится, что другие два бита справа от него. Но
-
вообще-то, мы уже посчитали сколько образцов получится из двух битов, так что
-
просто переписываем эти четыре модели. Как видим, для левого бита со значением ноль,
-
будет только четыре образца. Так что
-
в этом самом высшем ряду будет четыре модели.
-
Но что насчет другого значения самого левого бита?
-
Установим теперь его на единице, но все-равно
-
получим снова четыре модели, так как справа у меня все так же два бита.
-
Так что имеет смысл просто перерисовать их сюда.
-
Итак, для трех битов у нас получилось восемь моделей.
-
Четыре при значении левого на нуле, и
-
четыре при его значении на единице.
-
Итак, в общем, для каждого ряда моей маленькой таблицы
-
вы добавляете по одному биту слева и просто
-
удваиваете количество образцов, которое у вас получилось в ряду выше. Таким образом, используя
-
математику, мы видим, что из одного бита получается две модели.
-
Потом, добавляя еще два бита, у меня уже будет четыре модели, а для трех -
-
соответственно, восемь. Но, если вы посмотрите только на эти числа, вы увидите их удваивание.
-
Два, четыре, восемь, шестнадцать... Каждый раз, когда я прибавляю по одному биту, количество
-
образцов, которое я могу получить, удваивается. Если мы продолжим дальше,
-
у нас будет 32, 64, 128 и с восемью битами - 256
-
разных возможных моделей. И, конечно, восемь битов - это размер байта.
-
Так, что один байт может хранить 256 разных схем. Если говорить математически,
-
это число - экспоненциально (*возводимое в степень). Т.е. для n-ного количества битов, я могу создать 2 в n-ной
-
степени разных образцов. Но сейчас я хочу сфокусироваться только на одном байте. И здесь, это то,
-
что вам нужно знать. Итак, один байт - это группа, состоящая из восьми битов. И мы, вроде как,
-
пришли к выводу, что их этих восьми битов возможно получить только 256 различных схем.
-
Я думаю, логичный вопрос здесь - это "где же это будет работать?"
-
Так что, все, что я хочу сделать сейчас, это показать как я могу использовать эти образцы, чтобы представить
-
числа. Путь, которому я буду следовать - это не думать о деталях, а просто использовать то,
-
что из каждого числа я получу 256 моделей. Хотя, каждое число
-
особенное и его образцы отличаются от образцов любого другого
-
числа. Это будет просто нашей основой. Итак, давайте поработаем с числом ноль.
-
Так как у на 256 схем, мы возьмем одну для ноля,
-
другую - для единицы, третью - для двух, еще одну
-
для тройки и так далее. И попробуем продолжить до тех пор, пока не
-
запустим модели. Если, таким образом, мы дойдем до 254, а потом последнюю схему, у нас есть
-
одна слева, мы используем для числа 255, то 255 будет максимальное представимое
-
число для одного байта. Думаю, естественным вопросом будет, почему 255?
-
Не 256? У нас есть 256 образца и причина, по которой не 256 -
-
это то, что один из них мы используем для ноля. Числа "ноль". Так .что если вы посчитаете
-
все числа, у вам получится именно 255 чисел. Последняя схема использована
-
для 255; образцом под номером 256. Таким образом, если мы будем думать над тем, что может хранится
-
в одном байте, используя цветовую презентацию мы скажем, что один бит будет хранить
-
числа от нуля до 255. Итак, 255 - наш максимум. К этому мы уже приходили раньше,
-
когда работали с кодом " pixel.setRed" и какое число мы там устанавливали?
-
Число в ранже от 0 до 255. Почему? Потому что
-
красная величины для одного пикселя хранится в компьютере в одном байте. И этот байт
-
хранит в себе числа от 0 до 255. Это прост есть. Он не может хранить, скажем,
-
300 или минус 12, или сколько-то там. В цветовой схеме "setRed" использует именно
-
эти числа. Это просто отражает величину красного значения и это также правдиво для
-
зеленого, и синих значений. Каждое из них хранится одним
-
восьмибитным байтом и поэтому имеет именно такой ранж (0... 255). Так что,
-
теперь вы знаете тайну 255.