Компьютерные науки 101

Опубликовано: 28 Июня, 2021

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

Есть что-то под названием ASCII - вы можете погуглить. Это просто номер, присвоенный большинству символов (т.е. букв и знаков препинания), которые мы используем.
Ладно, и что?

Если вы сложите вместе несколько единиц и нулей, вы можете представить любое число. Вроде как азбука Морзе. Не волнуйтесь, если вы не знаете, что такое азбука Морзе. Идея в том, что существует соответствие между набором единиц и нулей и обычными числами, которые мы используем. Если взять 2 бита, это будет примерно так:

 00 равно 0
01 равно 1
10 равно 2
11 это 3

С 3 битами мы можем представить 8, с 4 - 16, с 32 битами вы можете представить более 4,2 миллиарда чисел и так далее.

Посмотрите фильм «Матрица». Это выводит эту идею на новый уровень.

Таким образом, если бит (единичный 1 или 0 называется битом) может быть сопоставлен с числом, а число может быть сопоставлено с символом (с использованием ASCII). Теперь мы можем представить любое когда-либо произнесенное предложение (на английском языке), используя только единицы и нули. Конечно, эта последовательность предназначена для понимания компьютера. Они могут быть тупыми, но поверьте мне, они быстро порочат.

Давайте продолжим эту идею. Как мы храним нашу музыку с помощью единиц и нулей?
Звук - это просто волна. Это можно представить в виде графика. Не верите мне? Посмотреть в режиме реального времени можно по этой ссылке.

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

 [54, 87, 32, 98, 132, 85, 31, 78, 235, 941, 
                   79, 23, 14, 412, 6, 34 .... 100 значений]

И мы знаем, как преобразовать десятичное число в двоичное (например, единицы и нули).
Бум! Теперь вы можете хранить аудио.

Поднимая планку. Как мы можем сохранить ваш любимый фильм?
Фильм состоит из двух частей - аудио и видео. Мы уже видели, как сохранять аудио. Видео - это набор изображений, которые сохраняются одно за другим и затем воспроизводятся очень быстро. Вроде как флипбук. Это так просто.

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

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

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

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

 Комбинации 1 и 0