Решён
Как кодируют информацию с помощью 0 и 1?

Алгоритмист Алгоритмы
6.5k
5

Учусь на первом курсе IT-специальности. Преподаватель объяснил что компьютер все хранит в виде нулей и единиц, но я до сих пор не понимаю как это работает на практике.

Ну ладно, число 5 это наверное 101 в двоичной. А как в виде 0 и 1 хранится буква "А"? А цветная фотография? А видео? Просто пример с числами понятен, а дальше начинается магия.

Объясните простыми словами, желательно с примерами.

Решение
86
Участник • 2 ответа

Основная идея такая: 0 и 1 - это просто договоренность о значении. Физически в процессоре или памяти это "есть напряжение" или "нет напряжения". Ничего более.

Теперь по твоим вопросам.

Буква "А": Люди договорились, что каждой букве соответствует число. Эта договоренность называется ASCII (а потом Unicode). Буква "A" латинская = число 65. В двоичном виде 65 это 01000001. Всё. Компьютер хранит 01000001 и знает, что это буква потому что контекст подсказывает: вот здесь у нас текст, значит интерпретируй как букву.

Цветная фотография: Любой цвет можно описать тремя числами - сколько в нем красного, зеленого и синего (RGB). Каждое число от 0 до 255. Чистый красный = (255, 0, 0). Белый = (255, 255, 255). Фотография - это просто миллионы таких точек (пикселей), и каждая точка - три числа. Три числа по 8 бит = 24 бита на пиксель. Фото 4000x3000 пикселей = 4000 3000 24 бит данных. Вот откуда размер файла.

Видео: Это последовательность фотографий (кадров), обычно 24-60 в секунду. Плюс звук отдельно. Сырое видео весит огромно, поэтому применяют сжатие - алгоритм запоминает не каждый кадр целиком, а только то, что изменилось между кадрами. Это и есть кодеки (H.264, H.265 и т.д.).

Главный принцип: любые данные - это числа. Числа - это двоичный код. Контекст (формат файла, программа) говорит как эти числа интерпретировать.

Аватар Алгоритмист

Про RGB вообще не думал что так работает, теперь понял. Спасибо!

26
Участник • 4 ответа

Добавлю один важный момент к ответу выше: разница между форматами файлов (.jpg vs .png, .mp3 vs .flac) - это и есть разница в том, КАК именно те же самые данные упакованы в 0 и 1. JPEG выбрасывает часть информации о цвете, которую глаз почти не замечает. PNG хранит все точно. Отсюда разница в размере при похожей картинке.

Звук: то же самое. Частота звука кодируется числом, громкость - числом. MP3 отбрасывает частоты, которые человек плохо слышит.

14
Участник • 1 ответ

Если хочешь пощупать руками - открой любой файл в hex-редакторе (HxD например, бесплатный). Увидишь те самые числа в шестнадцатеричном виде (это просто более компактная запись двоичного). Сразу становится понятно что внутри любого файла просто числа, никакой магии.

10
Участник • 1 ответ

Строго говоря, следует разграничить понятие кодирования информации и её физического представления. На уровне физики носителя речь идет о дискретных состояниях - намагниченность домена у HDD, заряд ячейки у NAND-флеш, состояние ямки/площадки у оптических дисков. Абстракция "0 и 1" - это уже логический уровень, надстройка над физическим. Само по себе двоичное представление не единственно возможное: существовали троичные ЭВМ (советская машина Сетунь), но двоичная система победила по причинам технологической простоты реализации.

3
Эксперт • 2 ответа

мне на информатике в школе объясняли что 0 это выключено а 1 это включено, типа лампочка горит или нет, и из миллионов таких лампочек складывается все остальное, мне тогда зашло как объяснение хотя это немного упрощение конечно

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.