
Полная версия:
Компьютерная грамотность с нуля: информатика, 8-й класс
3. Да. Общий объём: 7 МБ + 1 МБ + 2 · 2 МБ = 12 МБ. Набор ровно равен свободному месту, хотя в реальной ситуации лучше оставить небольшой запас.
4. Да. 25 КБ — это меньше 1 МБ, поэтому вместе с фотографией файлы займут меньше 4,2 МБ. Это меньше свободных 5 МБ.
Несколько полезных привычек
Когда нужно освободить память, не начинай удалять файлы наугад. Сначала открой сведения о хранилище и посмотри, что именно занимает место. Затем проверь самые крупные файлы и спроси себя, нужны ли они на этом устройстве. Часто одно длинное видео занимает больше, чем десятки документов, но удалять его стоит лишь после того, как ты убедился: важная запись сохранена.
Если файл очень велик, подумай о переносе на компьютер, внешний накопитель или в облачное хранилище. Сжатие тоже может помочь, особенно с некоторыми документами, но уже сжатые фотографии, музыка и видео обычно уменьшаются не так заметно. И всегда проверяй, что копия открывается, прежде чем удалять оригинал.
Итак, биты и байты — не отвлечённые школьные слова, а способ измерить данные, которые хранятся в телефоне и компьютере. Бит принимает одно из двух значений, восемь битов составляют байт, а килобайты, мегабайты и гигабайты помогают говорить о файлах и хранилищах удобными числами. Чтобы сравнить размеры, приводи их к одной единице и следуй правилам перевода из условия. А чтобы решить, поместится ли папка, сложи размеры её файлов и сравни сумму со свободным местом.
Лена перенесла концертное видео на компьютер, сохранила фотографии с экскурсии и оставила на телефоне небольшой запас. Теперь предупреждение о памяти было не загадкой, а задачей, которую можно решить: узнать размеры, посчитать и выбрать, где хранить нужные данные. В следующей главе мы разберёмся, как компьютер превращает числа, текст, изображения и звук в те самые данные, чей объём можно измерить.
Как компьютер кодирует числа, текст, изображения и звук
Компьютерная грамотность с нуля: информатика, 8-й класс — максимально простым и понятным языком
Вечером Лёша отправил подруге сразу три сообщения: фотографию кота, фразу «Завтра встречаемся у школы» и короткую голосовую запись. Подруга получила их почти мгновенно. Но что именно пересекло расстояние между телефонами? На первый взгляд — совсем разные вещи: изображение, буквы и человеческий голос. А компьютер хранит всё это в одном и том же виде: как последовательности нулей и единиц.
Лёша задумался: неужели внутри телефона лежит маленькая цифровая копия кота, стопка букв и крошечная запись его голоса? Не совсем. Компьютер не хранит готовую фотографию или звук так, как мы видим и слышим их. Он записывает данные по определённым правилам, а потом использует эти правила, чтобы показать изображение, вывести текст на экран или воспроизвести голос.
Разберёмся, как одной и той же машине удаётся понимать столь разные сведения.
Нули и единицы — общий язык компьютера
Компьютер работает с битами. Бит может принимать одно из двух значений: 0 или 1. Внутри устройства этим значениям соответствуют разные состояния электронных схем. Например, условно низкий и высокий уровень электрического сигнала. Реальные технические устройства устроены сложнее, но для понимания удобно представлять каждый бит как маленький переключатель с двумя положениями.
Сам по себе набор битов ещё не объясняет, что перед нами. Посмотрим на последовательность 01000001. По одному правилу её можно прочитать как число 65. По другому — как латинскую букву A. Значение зависит от того, какой способ кодирования использует программа.
Это похоже на одинаковые знаки в разных языках: сочетание символов может иметь один смысл в одном контексте и совсем другой — в другом. Чтобы компьютер верно прочитал данные, ему нужны не только биты, но и правила их толкования. Такие правила задаёт формат файла, программа или договорённость между устройствами.
Как компьютер записывает числа
Начнём с числа 13. В привычной десятичной системе его цифры связаны с разрядами: единицами и десятками. Компьютер часто использует двоичную систему, в которой есть только цифры 0 и 1. Разряды в ней соответствуют степеням числа 2: 1, 2, 4, 8, 16 и так далее.
Число 13 можно представить как сумму 8 + 4 + 1. Значит, в разрядах 8, 4 и 1 ставим единицы, а в разряде 2 — ноль:
13₁₀ = 1101₂
Нижние цифры показывают системы счисления: ₁₀ означает десятичную, а ₂ — двоичную. Если записывать это же число в восьми битах, получится 00001101. Левые нули не меняют значение: они лишь показывают, сколько разрядов выделено для записи.
Но есть важное различие. Число тринадцать и текст «13» — не одно и то же. Когда компьютер хранит число, с ним можно выполнять вычисления: прибавить 1, умножить на 2. Когда хранится текст «13», это два символа — «1» и «3». Их можно показать на экране, но программа не обязана считать их числом. Например, к тексту можно присоединить другие буквы, а с числами выполняют математические действия.
Есть и другие способы представлять числовые данные. Для отрицательных чисел нужны правила, позволяющие различать плюс и минус. Дробные числа записывают так, чтобы хранить целую и дробную части или их приближение. Поэтому некоторые десятичные дроби компьютер хранит не совершенно точно: это может привести к небольшим погрешностям в сложных вычислениях. Главное пока понять: число переводят в последовательность битов по заранее выбранному правилу.
Как числа становятся буквами
Для текста нужен код, который связывает символы с числами. В компьютере символами могут быть не только буквы. К ним относятся цифры, знаки препинания, пробелы, математические знаки и многие другие элементы.
Для учебного примера придумаем небольшой собственный код. Каждому знаку выделим три бита. Три бита дают восемь возможных комбинаций — этого хватит для нескольких букв и знаков.
Символ
Код
А
000
Б
001
В
010
Г
011
пробел
100
!
101
По этому правилу короткая запись «АБВ!» превратится в последовательность:
000 001 010 101
Пробелы между группами в таблице нужны, чтобы человеку было легче читать. В настоящем файле границы символов задаются способом записи, а не обязательно такими пробелами.
Для реальных текстов таблицы гораздо обширнее. Например, стандарт Unicode включает символы множества письменностей, знаки и эмодзи. Он присваивает символам специальные номера, а способы кодирования, такие как UTF-8, превращают эти номера в последовательности байтов. Латинская A в UTF-8 занимает один байт, а некоторые другие символы требуют нескольких байтов. Поэтому неверно думать, что любой знак всегда занимает ровно один байт.
Когда Лёша печатает сообщение, программа превращает символы в коды. Телефон отправляет закодированные данные, а устройство подруги читает их по совместимым правилам и показывает буквы на экране. Если приложения используют разные или неправильно понятые правила, вместо текста иногда появляются странные знаки. Данные не обязательно испорчены: возможно, программа просто читает их не тем способом.
Как изображение превращается в пиксели
Фотография кота кажется цельной картинкой, но цифровое изображение на экране обычно состоит из множества маленьких элементов — пикселей. Удобно представить фотографию как мозаику или клетчатую карту: для каждой клетки записано значение цвета.
Рассмотрим учебный чёрно-белый рисунок размером 5 на 5 пикселей. Договоримся, что 0 означает чёрный пиксель, а 1 — белый. Получится маленькое сердечко:
1-й пиксель
2-й пиксель
3-й пиксель
4-й пиксель
5-й пиксель
1-я строка
0
1
0
1
0
2-я строка
1
1
1
1
1
3-я строка
1
1
1
1
1
4-я строка
0
1
1
1
0
5-я строка
0
0
1
0
0
Здесь для каждого пикселя требуется всего один бит: он может быть либо чёрным, либо белым. Чтобы компьютер понял, как расположить значения, нужно знать размеры рисунка: в нашем примере это пять столбцов и пять строк. Без сведений о размерах те же 25 бит можно было бы расположить иначе.
В цветной фотографии одного бита на пиксель недостаточно. Часто цвет задают сочетанием трёх составляющих: красной, зелёной и синей. Для каждой составляющей обычно выделяют значения от 0 до 255. Например, цвет пикселя можно представить как тройку (255, 0, 0): красного много, зелёного и синего нет. Смешивая эти составляющие в разных пропорциях, получают множество цветов.
Если на каждый из трёх цветовых каналов выделено по одному байту, один пиксель занимает три байта, или 24 бита. Несжатое изображение размером 1920 на 1080 пикселей при таком способе записи потребовало бы примерно 6,2 миллиона байтов, не считая служебных сведений. Поэтому фотографии часто сжимают. Некоторые способы сжатия сохраняют исходные данные полностью, другие уменьшают размер файла, немного изменяя изображение.
Чем больше пикселей, тем больше деталей можно передать, но обычно тем больше данных нужно хранить. При сильном увеличении фотографии пиксели становятся заметны: гладкий контур превращается в лесенку. Это напоминает мозаику, в которой издалека виден рисунок, а вблизи — отдельные плитки.
Важно помнить: не всякое изображение хранится именно как сетка пикселей. Например, векторная графика может описывать фигуры и линии с помощью геометрических правил. Но фотографии чаще всего представляют как набор пикселей с цветами и дополнительной информацией о файле.
Как компьютер записывает звук
Голос Лёши вначале существует как изменение давления воздуха. Микрофон улавливает эти изменения и превращает их в электрический сигнал. Чтобы сохранить звук в компьютере, сигнал много раз измеряют через равные промежутки времени.
Представим для урока условный сигнал, значение которого постепенно меняется:
Номер измерения
1
2
3
4
5
6
7
8
9
Значение сигнала
0
2
4
2
0
−2
−4
−2
0
Эта таблица — упрощённая учебная модель, а не готовый пример настоящей голосовой записи. В реальности микрофон делает гораздо больше измерений, а значение каждого измерения компьютер округляет до одного из допустимых уровней. Затем полученные числа кодируются битами.
Здесь есть два важных понятия. Частота дискретизации показывает, сколько измерений выполняется за секунду. Например, при частоте 44 100 Гц сигнал измеряется 44 100 раз в секунду. Разрядность показывает, сколько битов выделено на одно измерение; чем она выше, тем больше возможных уровней громкости можно различить.
Для ориентира: при несжатой записи с частотой 44 100 измерений в секунду, разрядностью 16 бит и двумя каналами — левым и правым — требуется 44 100 · 16 · 2 = 1 411 200 бит в секунду. Это примерно 176 400 байтов в секунду без учёта служебной информации. Уменьшить размер записи помогают аудиоформаты и сжатие.
При воспроизведении программа читает числа, а устройство преобразует их в электрический сигнал для наушников или динамиков. Динамик снова заставляет воздух колебаться, и мы слышим звук. Поэтому цифровая запись — не одна непрерывная звуковая волна, спрятанная в телефоне, а последовательность числовых измерений, из которых устройство восстанавливает слышимый сигнал.
От создания данных до экрана
Проследим путь сообщений Лёши. На каждом этапе данные обрабатываются подходящими для них правилами.
Этап
Что происходит с текстом
Что происходит с фото
Что происходит с голосом
Создание
Нажатия на клавиатуру превращаются в символы
Камера получает изображение через матрицу светочувствительных элементов
Микрофон принимает колебания воздуха
Кодирование
Символам назначаются коды
Пикселям назначаются значения цвета
Измерения сигнала записываются как числа
Хранение или отправка
Данные записываются в файл или передаются
Файл фотографии передаётся по сети
Файл или поток звука отправляется получателю
Чтение программой
Программа распознаёт текстовый формат
Программа определяет размеры и цветовые данные
Программа читает звуковой формат и параметры записи
Вывод человеку
Символы появляются на экране
Пиксели отображаются как изображение
Динамик или наушники воспроизводят звук
Содержимое может сжиматься, делиться на части и проходить через несколько устройств. Но общий принцип остаётся прежним: данные кодируют по определённым правилам, передают или хранят, затем читают с помощью подходящей программы. Один и тот же телефон справляется с разными видами информации не потому, что у него есть отдельная «полка для котов» и «полка для голосов», а потому, что программы знают, как интерпретировать биты.
Учебная мастерская кодирования
Пора попробовать самому. Возьмём таблицу символов из этой главы. Закодируй фразу «АБВ!» и проверь, получилась ли последовательность 000 001 010 101. Теперь попробуй расшифровать запись 010 000 101. По таблице это «ВА!». Такие задания показывают, что кодирование и декодирование — два противоположных действия: сначала символы превращают в коды, а потом коды читают по тому же правилу.
Теперь закодируй рисунок из таблицы пикселей. Запиши значения строка за строкой, не меняя порядок. Получится:
01010 11111 11111 01110 00100
Чтобы восстановить сердечко, нужно знать, что значения идут по строкам, а размер рисунка — 5 на 5. Попробуй придумать собственный рисунок размером 5 на 5, используя только 0 и 1. Сначала договорись с собой, что означает каждый бит, затем запиши пиксели и проверь, можно ли по записи восстановить изображение. Если можно — правило задано достаточно ясно.
И наконец, придумай, какие сведения потребовались бы для передачи звукового сигнала из нашей таблицы другому человеку. Ему нужно знать не только сами числа, но и порядок измерений, частоту их получения и способ превращения значений в звук. Это напоминает сборку конструктора: если детали известны, но неизвестна инструкция, нужный результат получить трудно.
Сегодня Лёша узнал, что фотография, текст и голос внутри компьютера представлены битами, но правила записи у них разные. Числа кодируются как числовые значения, символы — с помощью таблиц и стандартов, изображения — через пиксели и цвета, а звук — через измерения сигнала во времени. Чтобы понять содержимое, программа должна знать, как прочитать последовательность битов.
Итак, биты — общий язык компьютера, но одна и та же последовательность нулей и единиц может означать число, букву, цвет или звук. Чтобы понять данные, программе нужны правила их кодирования и чтения. Лёша теперь знает: компьютер хранит не готовые фотографии и слова, а данные, которые программы умеют превращать в знакомую нам информацию.
А как из нулей и единиц получается число? Для этого стоит разобраться в системах счисления. Десятичная система нам привычна, а двоичная сначала может показаться непривычной — но принцип у них общий.
Системы счисления: десятичная и двоичная без страха
«Компьютерная грамотность с нуля: информатика, 8-й класс. Максимально простым и понятном языком.»
На экране игрового автомата мигало число 1101. Миша посмотрел на него и пожал плечами:
— Это что, номер уровня? Или кто-то нажал клавиши наугад?
Но рядом лежала записка: «Введи число тринадцать». Миша попробовал набрать 13 — автомат молчал. Тогда он снова посмотрел на странную запись: 1101. Может быть, это и было тринадцать, только записанное необычным способом?
Так и оказалось. Дело не в хитрости автомата и не в случайном наборе цифр. Просто одно и то же число можно записывать по разным правилам. Сегодня мы разберёмся, как эти правила устроены и почему двоичная запись — вовсе не загадочный код, а близкая родственница привычной десятичной системы.
Сначала — знакомые числа
Мы постоянно пользуемся десятичной системой счисления: считаем в ней деньги, шаги, оценки и минуты. Она называется десятичной, потому что в ней есть десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9.
Но важны не только сами цифры. Важно и то, где именно стоит каждая цифра.
Возьмём число 13. Оно состоит из цифры 1 и цифры 3. Но цифра 1 здесь означает не просто «один предмет»: она стоит в разряде десятков и обозначает десять. Цифра 3 стоит в разряде единиц и обозначает три единицы.
Иначе говоря:
13 = 1 · 10 + 3 · 1
А число 347 можно разобрать так:
347 = 3 · 100 + 4 · 10 + 7 · 1
Число 100 — это 10², число 10 — это 10¹, а число 1 — это 10⁰. Значит, разряды справа налево имеют веса 1, 10, 100, 1000 и так далее. Каждый следующий разряд в десять раз тяжелее предыдущего.
Разряд в числе 347
Сотни
Десятки
Единицы
Вес разряда
100
10
1
Цифра
3
4
7
Вклад в число
300
40
7
Если бы в числе 347 поменять цифры местами, получилось бы уже другое число. Например, 374 — это 3 сотни, 7 десятков и 4 единицы. Цифры те же, а их места другие — поэтому и значение изменилось.
Такой способ записи называют позиционным: значение цифры зависит и от неё самой, и от её позиции.
То же правило, но всего с двумя цифрами
Двоичная система устроена по тому же принципу. Её отличие в том, что в ней разрешены только две цифры: 0 и 1. Поэтому её основание — два, а разряды справа налево имеют веса 1, 2, 4, 8, 16, 32 и так далее. Каждый следующий разряд вдвое больше предыдущего.
Это знакомый порядок, если смотреть на него не как на новый список цифр, а как на веса разрядов:
Позиция справа налево
4-я
3-я
2-я
1-я
Вес разряда
8
4
2
1
Та же запись степенями двойки
2³
2²
2¹
2⁰
Сравни:
• в десятичной системе веса разрядов: 1, 10, 100, 1000;
• в двоичной системе веса разрядов: 1, 2, 4, 8, 16.
И там и там правый крайний разряд равен единице. Дальше веса растут, только в десятичной системе — в десять раз, а в двоичной — в два.
Чтобы не путать записи, можно указывать основание маленькой цифрой снизу: 13₁₀ — тринадцать в десятичной системе, а 1101₂ — запись в двоичной. Нижний индекс здесь не часть числа, а подсказка о системе счисления.
Переводим двоичное число в десятичное
Теперь выясним, что означает запись 1101₂. Поставим под каждой цифрой вес её разряда:
Цифра двоичного числа
1
1
0
1
Вес разряда
8
4
2
1
Вклад цифры
8
4
0
1
Каждая единица говорит: «Возьми вес этого разряда». Каждый ноль говорит: «Ничего не добавляй».
8 + 4 + 0 + 1 = 13
Значит:
1101₂ = 13₁₀
Вот и разгадка записки у автомата. Число 13 никуда не исчезло — оно просто сменило способ записи.
Попробуем ещё один пример — 10110₂. Разряды справа налево весят 1, 2, 4, 8 и 16:
Цифра двоичного числа
1
0
1
1
0
Вес разряда
16
8
4
2
1
Вклад цифры
16
0
4
2
0
Складываем ненулевые вклады:
16 + 4 + 2 = 22
Следовательно, 10110₂ = 22₁₀.
Рабочий алгоритм короткий:
1. Запиши под двоичными цифрами веса разрядов: справа налево 1, 2, 4, 8, 16 и далее.
2. Умножь каждый вес на цифру над ним. Поскольку цифра может быть только 0 или 1, достаточно оставить вес для единицы и записать 0 для нуля.
3. Сложи полученные значения.
Чтобы проверить себя, можно пересчитать разряды справа. Крайняя правая цифра всегда имеет вес 1; следующая — 2; затем 4, 8, 16. Если начать считать веса с неверного края, ответ собьётся.
Теперь отправляемся в обратную сторону
А если дано десятичное число и нужно записать его двоично? Например, снова число 13?
Есть простой способ: делить число на два и записывать остатки. При делении на два остаток всегда равен 0 или 1 — как раз одной из цифр двоичной системы.
Разберём перевод 13₁₀:
1. 13 разделим на 2. Получится 6, остаток 1.
2. 6 разделим на 2. Получится 3, остаток 0.
3. 3 разделим на 2. Получится 1, остаток 1.
4. 1 разделим на 2. Получится 0, остаток 1. На этом заканчиваем.
Получилась цепочка остатков: 1, 0, 1, 1. Но читать их нужно снизу вверх, начиная с последнего остатка:
1101₂
Итак, 13₁₀ = 1101₂.
Почему остатки читают снизу вверх? Первый остаток показывает, есть ли в числе единицы. Следующий — есть ли двойки, затем четвёрки, восьмёрки и так далее. То есть сначала мы находим младшие разряды, а последними — старшие. Поэтому при записи числа порядок остатков разворачивается.
Проверка возвращает нас к уже знакомой таблице:
1101₂ = 8 + 4 + 0 + 1 = 13₁₀
Если обратный перевод снова дал исходное число, скорее всего, мы всё сделали верно.
Разберём пример 10₁₀:
1. 10 ÷ 2 = 5, остаток 0.
2. 5 ÷ 2 = 2, остаток 1.
3. 2 ÷ 2 = 1, остаток 0.
4. 1 ÷ 2 = 0, остаток 1.
Читаем остатки снизу вверх: 1010₂.
Проверяем:
1010₂ = 8 + 0 + 2 + 0 = 10₁₀
И ещё один, чуть более длинный пример — 19₁₀:
1. 19 ÷ 2 = 9, остаток 1.
2. 9 ÷ 2 = 4, остаток 1.
3. 4 ÷ 2 = 2, остаток 0.
4. 2 ÷ 2 = 1, остаток 0.
5. 1 ÷ 2 = 0, остаток 1.
Читаем снизу вверх: 10011₂.
Проверка:
10011₂ = 16 + 0 + 0 + 2 + 1 = 19₁₀
Второй способ: подобрать веса разрядов
Иногда двоичную запись удобно составить не делением, а подбором степеней двойки. Сначала находим наибольший вес, который не превышает число, затем смотрим, что остаётся.
Пусть нужно записать число 13.
1. Самый большой подходящий вес — 8. Берём его. Остаток: 13 − 8 = 5.
2. Следующий вес — 4. Он помещается в 5. Берём его. Остаток: 5 − 4 = 1.
3. Вес 2 в остаток 1 не помещается. Для разряда двоек ставим 0.
4. Вес 1 помещается. Для разряда единиц ставим 1.
Получились веса 8, 4, 2, 1 и цифры 1, 1, 0, 1. Значит, снова выходит 1101₂.
Этот способ похож на сборку суммы из крупных и мелких деталей: берём самый крупный подходящий «кирпичик», а затем подбираем следующие. Если какой-то вес не нужен, на его месте появляется ноль.
Где здесь может подстерегать ошибка
Запись 1101₂ нельзя читать как обычное десятичное число «тысяча сто один». В двоичной системе цифры стоят на тех же позициях, но веса у позиций другие. В десятичной записи веса были бы 1000, 100, 10 и 1; в двоичной — 8, 4, 2 и 1. Поэтому 1101₂ — это тринадцать, а не тысяча сто один.
Есть и простое правило для проверки записи: в двоичном числе не может встретиться цифра 2, 3, 4 и так далее. Если видишь запись вроде 1201₂, значит, она неверна: двоичная система использует только 0 и 1.

