Системы счисления и представление информации в компьютере
Привет! Сегодня мы разберёмся в теме, которая может показаться сложной, но на самом деле она объясняет, как работает буквально всё цифровое вокруг нас — от твоего смартфона до игр и соцсетей. Готов узнать, на каком языке «думают» компьютеры?
Системы счисления — это что вообще?
Давайте представим: ты привык считать на пальцах — раз, два, три... до десяти. Это десятичная система счисления — у нас 10 цифр (от 0 до 9), и мы ими пользуемся каждый день.
💡 Главная идея
Но компьютер так не умеет. У него, грубо говоря, всего «два пальца» — либо есть электрический сигнал, либо нет. Это как выключатель света: 0 (выключен) или 1 (включен). Поэтому компьютеры используют двоичную систему счисления — всего две цифры.
🤔 А ещё есть другие системы
Кроме двоичной (основание 2) и десятичной (основание 10), существуют:
- Восьмеричная система — 8 цифр (от 0 до 7)
- Шестнадцатеричная система — 16 цифр (от 0 до 9, затем A, B, C, D, E, F)
Зачем? Чтобы программистам было удобнее читать и записывать длинные двоичные коды.
Почему именно двоичная?
Как ты думаешь, почему компьютер выбрал двоичную систему?
Транзисторы внутри компьютера работают как выключатели
Всё просто: внутри компьютера миллиарды крошечных переключателей (транзисторов). Каждый либо пропускает ток, либо нет. Два состояния — два числа: 0 и 1. Это надёжно, быстро и понятно для электроники.
❓ Частый вопрос
«Почему не сразу десятичная?»
Представь, что каждому переключателю нужно было бы различать 10 разных уровней напряжения — это сложно, медленно и ненадёжно. А два состояния — идеально!
Представление целых чисел в компьютере
Давай разберёмся, как компьютер хранит числа.
Ячейки памяти и биты
Ячейка памяти из 8 бит = 1 байт
Представь: память компьютера — это огромный склад с миллионами маленьких коробочек. Каждая коробочка называется ячейка памяти, и в ней может быть либо 0, либо 1. Одна такая коробочка — это бит (от английского "binary digit" — двоичная цифра).
📦 Группировка битов
Обычно биты объединяются в группы:
- 8 бит = 1 байт
- 16 бит = 2 байта
- 32 бита = 4 байта
- 64 бита = 8 байтов
💾 Зачем группировать?
Одного бита мало — в нём всего два значения (0 или 1). А вот в 8 битах можно закодировать уже 256 разных чисел! Чем больше битов, тем больше информации можно сохранить.
Беззнаковые целые числа
Это самый простой случай — когда числа только положительные (нет минуса).
🔢 Как это работает?
Каждый разряд (каждый бит) может быть 0 или 1. Значит, в ячейке из n разрядов можно записать 2n разных состояний.
Например:
- 8 бит: от 0 до 255 (это 28 − 1)
- 16 бит: от 0 до 65 535 (это 216 − 1)
- 32 бита: от 0 до 4 294 967 295 (это 232 − 1)
Таблица диапазонов беззнаковых чисел
| Количество бит | Минимальное значение | Максимальное значение |
|---|---|---|
| 8 | 0 | 255 |
| 16 | 0 | 65 535 |
| 32 | 0 | 4 294 967 295 |
🎮 Пример из жизни
Когда ты играешь в игру, и у тебя есть счётчик очков — он может храниться как беззнаковое число. Если игра использует 16 бит, максимум очков — 65 535. Наберёшь больше — произойдёт «переполнение» (счётчик сбросится).
Как перевести число в двоичную систему?
Давай возьмём число 5310 (в десятичной системе).
📝 Алгоритм перевода
Чтобы перевести его в двоичную, делим число на 2 и записываем остатки справа налево:
26 ÷ 2 = 13 (остаток 0)
13 ÷ 2 = 6 (остаток 1)
6 ÷ 2 = 3 (остаток 0)
3 ÷ 2 = 1 (остаток 1)
1 ÷ 2 = 0 (остаток 1)
Читаем остатки снизу вверх: 1101012
В 8-битном формате
В 16-битном формате
Представление чисел со знаком (положительные и отрицательные)
Во многих задачах нужны не только положительные числа, но и отрицательные. Например, температура может быть −10°C, или баланс на счёте может уйти в минус.
Один бит отвечает за знак числа
➕➖ Как компьютер запоминает знак?
Используется так называемый прямой код:
- Самый левый (старший) разряд отвечает за знак:
- 0 = положительное число
- 1 = отрицательное число
- Остальные разряды — само число
Пример: +5
Число +5 в 8-битном формате:
(первый бит = 0 → число положительное)
Пример: −5
Число −5 в 8-битном формате:
(первый бит = 1 → число отрицательное)
Таблица диапазонов чисел со знаком
| Количество бит | Минимальное значение | Максимальное значение |
|---|---|---|
| 8 | −128 | +127 |
| 16 | −32 768 | +32 767 |
| 32 | −2 147 483 648 | +2 147 483 647 |
⚠️ Важно!
Заметь: диапазон чисел сместился! Один бит «ушёл» на знак, поэтому максимальное положительное число стало меньше, зато появились отрицательные.
«Компьютерные» системы счисления
Зачем нужны восьмеричная и шестнадцатеричная?
Часто бывает так, что программисты работают с длинными цепочками нулей и единиц — это неудобно!
Пример: двоичное число 110101011010111010101110 — попробуй с первого раза его запомнить или найти ошибку.
Восьмеричная система
8 цифр: 0–7
Каждая цифра заменяет 3 бита
Удобно для быстрой записи коротких двоичных чисел
Шестнадцатеричная система
16 цифр: 0–9, A–F
Каждая цифра заменяет 4 бита
Самая популярная для работы программистов
📍 Пример: адрес в памяти
Когда ты открываешь программу, она получает адрес в памяти. Адреса часто записывают в шестнадцатеричной системе, потому что они короче и нагляднее.
Например, адрес 0x3A5F в шестнадцатеричной — это куда понятнее, чем 0011101001011111 в двоичной.
Тайна кодовой таблицы (как компьютер хранит текст)
Ты знаешь, что компьютер понимает только числа (0 и 1). Но как же он хранит буквы, смайлики, символы?
Кодовая таблица ASCII: каждому символу — свой код
🔐 Ответ простой
Каждому символу присваивается свой двоичный код. Это как в шифре: A = 65, B = 66, а = 224 и так далее.
Соответствие символов и их кодов задаётся специальной кодовой таблицей. Одна из самых известных — ASCII (American Standard Code for Information Interchange).
💡 Пример из таблицы ASCII
Найди в таблице букву «M»:
- Она находится в строке с номером 4
- В столбце с номером D
- Её шестнадцатеричный код: 4D
- А двоичный: 01001101
Попробуй сам: найди в таблице символ «@» и узнай его код!
🔍 Дополнительный код (для продвинутых)
Ты можешь прочитать в интернете, как образуется и применяется дополнительный код — это более продвинутый способ представления отрицательных чисел, который позволяет заменить операцию вычитания сложением. Это упрощает работу процессора!
Обмен данными между устройствами
Почему не только двоичная, но и восьмеричная, и шестнадцатеричная системы счисления считаются «компьютерными»?
Обмен данными: компьютеры говорят на двоичном, программисты читают в шестнадцатеричном
🔢 Двоичные числа — родной язык
Это родной язык компьютера (надёжно и помехоустойчиво)
➕ Простая арифметика
Двоичная арифметика — самая простая (всего 4 операции сложения: 0+0, 0+1, 1+0, 1+1)
🔬 Математический аппарат
Для двоичных данных очень удобен и логичен
⚡ Главное преимущество
Программистам неудобно читать длинные последовательности нулей и единиц. Поэтому на некоторых этапах разработки, настройки и отладки систем двоичные коды заменяют на эквивалентные представления в восьмеричной или шестнадцатеричной системе.
Это сокращает длину кода в 3–4 раза, делая информацию удобнее для анализа.
📌 Самое главное
Давай подведём итоги — что нужно запомнить на всю жизнь:
🤔 Проверь себя
Теперь время проверить, насколько хорошо ты усвоил тему! Попробуй ответить на эти вопросы — можешь делать это устно, письменно или обсудить с другом.
1. Как в памяти компьютера представляются целые числа?
Объясни своими словами, что такое «бит» и «байт».
2. Представь число 63₁₀ в беззнаковом 8-разрядном формате
Запиши его в двоичном виде. Подсказка: делим на 2 и собираем остатки!
3. Найди десятичные эквиваленты чисел по их прямым кодам
Записанных в 8-разрядном формате со знаком:
- a)
01001100 - б)
11111000
Помни: первый бит — это знак!
4. Какие из чисел 443₈, 101010₂, 256₁₀ можно сохранить в 8-разрядном беззнаковом формате?
Объясни почему. Подсказка: максимальное значение для 8 бит = 255.
5. Декодируй текстовые сообщения в кодировке ASCII
Используй таблицу ASCII из материала:
a) 01000100 01010010 01000101 01000001 01001101
б) 01001101 01110111 01110011 01100111 01101110 01110010
6. Задание с графикой: декодируй шестнадцатеричные числа
На листке в клетку запиши в столбик: 1800, 1F00, 1980, 40C6, FFFF, 0066, 0FC0, 0E00.
Декодируй графическое изображение, заменяя каждую шестнадцатеричную цифру двоичной тетрадой (4 бита) и записывая её справа налево. Если клетка = 1, закрась её, если 0 — оставь пустой. Что получилось?
7. Почему восьмеричная и шестнадцатеричная системы считаются «компьютерными»?
Придумай свой пример, когда шестнадцатеричная запись удобнее двоичной.
Подсказка: попробуй записать число 255 в обеих системах и сравни длину записи.
8. Придумай свой пример кодирования!
Представь, что ты разработчик игры и тебе нужно закодировать имя персонажа HERO в двоичном коде (используй ASCII). Запиши последовательность бит.
9. Объясни разницу между беззнаковыми числами и числами со знаком
Когда какой тип лучше использовать? Приведи примеры из реальной жизни.
10. Почему компьютер использует именно двоичную систему, а не десятичную?
Объясни это своему другу, который никогда не изучал информатику.
🎯 Практические задания
Попробуй применить полученные знания на практике!
✍️ Задание 1: Перевод чисел
Переведи следующие числа из десятичной системы в двоичную:
- 15₁₀ = ?₂
- 32₁₀ = ?₂
- 100₁₀ = ?₂
- 255₁₀ = ?₂
Проверь: 255₁₀ должно получиться 11111111₂
🔢 Задание 2: Определи диапазон
Сколько разных чисел можно закодировать в:
- 4 битах?
- 12 битах?
- 24 битах?
Формула: 2n, где n — количество бит
💾 Задание 3: Беззнаковые vs со знаком
Заполни таблицу для 8-битного числа 10000001:
- Как беззнаковое число: ?₁₀
- Как число со знаком: ?₁₀
Обрати внимание на первый бит!
🔤 Задание 4: Закодируй своё имя
Используя таблицу ASCII, закодируй первые три буквы своего имени (латинскими буквами) в двоичном коде.
Например: A = 01000001
🎮 Задание 5: Счётчик в игре
В твоей игре счётчик очков хранится в 16-битном беззнаковом формате. Игрок набрал 65 000 очков. Сколько ещё очков он может набрать до переполнения?
🔍 Задание 6: Найди ошибку
Какое из этих утверждений неверное?
- В 1 байте 8 бит
- Максимальное 8-битное число = 256
- В шестнадцатеричной системе буква F = 15₁₀
- Первый бит в числе со знаком отвечает за знак
🔬 Интересные факты
Немного любопытной информации о системах счисления и компьютерах!
💡 Факт 1: Почему байт = 8 бит?
Это не случайность! Число 8 выбрано потому, что в 8 битах можно закодировать 256 разных символов — этого хватало для всех букв, цифр и знаков препинания. Сейчас используется Unicode, где для одного символа может быть больше байтов.
🌍 Факт 2: Двоичная система в древности
Двоичная система счисления использовалась в Древнем Китае ещё в XI веке до нашей эры! Китайская «Книга перемен» (И Цзин) основана на комбинациях прерывистых и сплошных линий — это, по сути, двоичный код.
🎯 Факт 3: Проблема 2038 года
В некоторых компьютерных системах время хранится как количество секунд с 1 января 1970 года в 32-битном формате со знаком. 19 января 2038 года этот счётчик переполнится! Программисты уже работают над решением этой проблемы.
💾 Факт 4: Первый бит
Первый компьютерный бит информации был сохранён в 1947 году на компьютере ENIAC. Этот компьютер весил 27 тонн и занимал целую комнату! Сегодня твой смартфон в миллионы раз мощнее.