Конвертер двоичного числа в десятичное
Мгновенный перевод двоичных чисел в десятичные и обратно. Работает с любым числом битов. Бесплатный математический конвертер для студентов и разработчиков.
Как работает преобразование двоичного в десятичное
Двоичная (основание 2) использует только цифры 0 и 1. Каждая позиция представляет степень 2, удваивающуюся слева направо. Чтобы преобразовать двоичное в десятичное, умножьте каждую двоичную цифру на ее значение позиции и сложите результаты.
Пример: Преобразовать 1011₂ в десятичное
- Позиция 3 (с левой стороны): 1 × 2³ = 1 × 8 = 8
- Позиция 2: 0 × 2² = 0 × 4 = 0
- Позиция 1: 1 × 2¹ = 1 × 2 = 2
- Позиция 0 (с правой стороны): 1 × 2⁰ = 1 × 1 = 1
- Общая сумма: 8 + 0 + 2 + 1 = 11
Для десятичного в двоичное повторите деление на 2 и запишите остатки снизу вверх. 11 ÷ 2 = 5 R1, 5 ÷ 2 = 2 R1, 2 ÷ 2 = 1 R0, 1 ÷ 2 = 0 R1 → читая остатки вверх: 1011.
Эта позиционная система счисления работает одинаково, как и десятичная — просто с другим основанием. В десятичной (основание 10) число 347 означает 3 × 10² + 4 × 10¹ + 7 × 10⁰ = 300 + 40 + 7. Двоичная использует тот же принцип, но с степенями 2 вместо степеней 10.
Справочник двоичных значений
Байт из 8 бит — фундаментальная единица хранения компьютера. Вот полный справочник по значениям позиций для 8-разрядных чисел (0–255):
| Позиция бита | Степень 2 | Десятичное значение |
|---|---|---|
| Бит 7 (MSB) | 2⁷ | 128 |
| Бит 6 | 2⁶ | 64 |
| Бит 5 | 2⁵ | 32 |
| Бит 4 | 2⁴ | 16 |
| Бит 3 | 2³ | 8 |
| Бит 2 | 2² | 4 |
| Бит 1 | 2¹ | 2 |
| Бит 0 (LSB) | 2⁰ | 1 |
Байт может представлять любое значение от 0 (00000000₂) до 255 (11111111₂). Два байта (16 бит) охватывают 0–65 535. Четыре байта (32 бита) охватывают 0–4 294 967 295.
Расширенный справочник степеней 2
Для программистов и специалистов по вычислительной технике знание степеней 2 до 2⁶⁴ необходимо для понимания адресации памяти, типов данных и системных ограничений:
| Степень | Десятичное значение | Значимость |
|---|---|---|
| 2⁰ | 1 | Меньшая единица (1 бит) |
| 2⁸ | 256 | 1 байт диапазон (0–255) |
| 2¹⁰ | 1 024 | 1 Кибибайт (кибайты) |
| 2¹⁶ | 65 536 | 16-разрядный диапазон; лимит порта TCP |
| 2²⁰ | 1 048 576 | 1 Мибибайт (мегабайты) |
| 2²⁴ | 16 777 216 | 24-битная цветность (16,7 млн цветов) |
| 2³⁰ | 1 073 741 824 | 1 Гибибайт (гигабайты) |
| 2³² | 4 294 967 296 | 32-битная адресная область; максимальное значение IPv4 |
| 2⁴⁰ | 1 099 511 627 776 | 1 Тибибайт (тебибайты) |
| 2⁶⁴ | 18 446 744 073 709 551 616 | 64-битная адресная область; современные процессоры |
Примечание. Разница между двоичными префиксами (кибайты, мегабайты, гигабайты — степени 2) и префиксами СИ (килобайты, мегабайты, гигабайты — степени 10). 1 ГБ = 1 000 000 000 байт; 1 Гибибайт = 1 073 741 824 байт. Эта ~7% разница объясняет, почему жесткий диск «500 ГБ» отображается как ~465 Гибибайт в вашей ОС (которая обычно использует двоичные единицы внутренне).
Общие двоичные значения в вычислительной технике
Эти двоичные значения часто встречаются в программировании, сетях и администрировании систем:
| Двоичное | Десятичное | Шестнадцатеричное | Октал | Контекст |
|---|---|---|---|---|
| 00000000 | 0 | 0x00 | 0o0 | Нулевой байт, черный цветовой канал |
| 00001010 | 10 | 0x0A | 0o12 | Символ перевода строки (LF) — Unix-новая строка |
| 00001101 | 13 | 0x0D | 0o17 | Символ возврата каретки (CR) — часть Windows-новой строки |
| 00100000 | 32 | 0x20 | 0o20 | Символ пробела (ASCII) |
| 01000001 | 65 | 0x41 | 0o41 | ASCII «A» |
| 01100001 | 97 | 0x61 | 0o141 | ASCII «a» (отличается от «A» по биту 5) |
| 01111111 | 127 | 0x7F | 0o177 | Локальный IP-адрес (последняя октета); символ DEL |
| 10000000 | 128 | 0x80 | 0o200 | Начало расширенного ASCII / знаковый бит |
| 11000000 | 192 | 0xC0 | 0o300 | Префикс класса C (192.x.x.x) |
| 11111111 | 255 | 0xFF | 0o377 | Распространение; максимальное значение байта; белый в RGB |
Сравнение двоичного, шестнадцатеричного и восьмеричного
Программисты используют разные системы счисления в зависимости от контекста. Вот, как эти значения появляются в каждой системе:
| Десятичное | Двоичное | Шестнадцатеричное | Восьмеричное | Использование |
|---|---|---|---|---|
| 0 | 0000 | 0x0 | 0o0 | Ноль / нулевой байт |
| 7 | 0111 | 0x7 | 0o7 | Unix-пермиссия (rwx) |
| 10 | 1010 | 0xA | 0o12 | — |
| 15 | 1111 | 0xF | 0o17 | Максимальное значение 4-бит (ниббл) |
| 16 | 10000 | 0x10 | 0o20 | — |
| 127 | 1111111 | 0x7F | 0o177 | Максимальное значение подписанного 8-бит |
| 255 | 11111111 | 0xFF | 0o377 | Максимальное значение неотрицательного 8-бит |
| 511 | 111111111 | 0x1FF | 0o777 | Unix-пермиссия rwxrwxrwx |
| 1023 | 1111111111 | 0x3FF | 0o1777 | Максимальное значение 10-бит (ADC) |
Шестнадцатеричная — наиболее распространенная сокращенная форма двоичного, поскольку каждая шестнадцатеричная цифра соответствует ровно 4 двоичным битам — что делает преобразование очень простым. Восьмеричная соответствует 3 битам на цифру и используется в основном для Unix-пермиссий (например, chmod 755 = 111 101 101 в двоичном = rwxr-xr-x).
Подписанные двоичные числа (двойное дополнение)
Компьютеры представляют отрицательные числа с помощью двойного дополнения — стандарта, определенного IEEE и используемого всеми современными процессорами. В 8-битной системе двойного дополнения:
| Двоично | Ненегативный десятичный | Подписанный (двойное дополнение) |
|---|---|---|
| 00000000 | 0 | 0 |
| 00000001 | 1 | +1 |
| 01111111 | 127 | +127 (максимально положительное) |
| 10000000 | 128 | −128 (минимально отрицательное) |
| 10000001 | 129 | −127 |
| 11111110 | 254 | −2 |
| 11111111 | 255 | −1 |
Чтобы отрицательное число отрицать в двойном дополнении: инвертировать все биты и прибавить 1. Например, +5 = 00000101 → инвертировать → 11111010 → прибавить 1 → 11111011 = −5.
Диапазоны для общих целочисленных типов:
| Тип | Биты | Ненегативный диапазон | Подписанный диапазон |
|---|---|---|---|
| Байт / uint8 | 8 | 0 до 255 | −128 до +127 |
| Короткое / int16 | 16 | 0 до 65 535 | −32 768 до +32 767 |
| Целое число / int32 | 32 | 0 до 4 294 967 295 | −2 147 483 648 до +2 147 483 647 |
| Длинное / int64 | 64 | 0 до 18,4 × 10¹⁸ | −9,2 × 10¹⁸ до +9,2 × 10¹⁸ |
Двоичные числа в повседневной технологии
Двоичные числа являются основой всех современных вычислений, потому что транзисторы имеют два устойчивых состояния (включено/выключено, 1/0). Основные применения:
- Размеры файлов: 1 килобайт = 2¹⁰ = 1024 байта; 1 мегабайт = 2²⁰ = 1 048 576 байт; 1 гигабайт = 2³⁰ байт
- Цвета: Цвета RGB — три 8-битных значения. #FF5733 в шестнадцатеричном виде = (255, 87, 51) в десятичном виде = (11111111, 01010111, 00110011) в двоичном виде
- ASCII-кодирование: Буква «А» = десятичное 65 = двоичное 01000001; «а» = 97 = 01100001
- Юникод: Большинство текстовых символов влазят в 16-битные двоичные числа (диапазон 0–65 535)
- Адреса IP: Адреса IPv4 — четыре 8-битных двоичных группы: 192.168.1.1 = 11000000.10101000.00000001.00000001
Понимание двоичных чисел напрямую помогает в программировании (битовые операции, флаги), сетевом программировании (IP/подсеть) и работе с низкоуровневым оборудованием.
Двоичные арифметика: сложение и вычитание
Двоичная арифметика следует тем же правилам, что и десятичная, но с двумя цифрами. Таблица сложения:
| A | B | Сумма | Перенос |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Пример: 1011 + 0110
Работая слева направо: 1+0=1, 1+1=10 (записать 0 перенос 1), 0+1+1=10 (записать 0 перенос 1), 1+0+1=10 (записать 0 перенос 1). Результат: 10001 (десятичное: 11+6=17 ✓)
Вычитание в hardware обычно выполняется путем сложения двойного дополнения вычитаемого. Чтобы вычислить A−B, процессор рассчитывает A + (−B), где −B — двойное дополнение B. Это позволяет использовать один блок сложения для выполнения как сложения, так и вычитания.
Битовые операции
Языки программирования предоставляют битовые операторы, которые манипулируют отдельными битами. Эти операторы являются фундаментальными для низкоуровневого программирования, встраиваемых систем и оптимизации производительности:
| Операция | Символ | Пример (8-бит) | Результат | Использование |
|---|---|---|---|---|
| И | & | 10110101 & 11110000 | 10110000 | Маскирование бит, извлечение полей |
| ИЛИ | | | 10110101 | 00001111 | 10111111 | Установка бит, объединение флагов |
| ИКСОР | ^ | 10110101 ^ 11111111 | 01001010 | Переключение бит, простая шифровка |
| НЕ | ~ | ~10110101 | 01001010 | Инверсия бита |
| Сдвиг влево | << | 00000101 << 2 | 00010100 | Умножение на 2ⁿ |
| Сдвиг вправо | >> | 00010100 >> 2 | 00000101 | Деление на 2ⁿ |
Сдвиг бит намного быстрее, чем умножение/деление в многих процессорах. x << 1 эквивалентен x × 2, а x >> 1 эквивалентен x ÷ 2 (целочисленному делению). Игровые движки и встраиваемые прошивки используют эти операции для повышения производительности.
Двоичное десятичное представление (ДДП)
Двоичное десятичное представление представляет каждый десятичный цифру с помощью своего собственного 4-битного двоичного шаблона. В отличие от чистого двоичного, ДДП сохраняет десятичную структуру:
| Десятичное | Чистое двоичное | ДДП |
|---|---|---|
| 0 | 0000 | 0000 |
| 5 | 0101 | 0101 |
| 9 | 1001 | 1001 |
| 10 | 1010 | 0001 0000 |
| 42 | 101010 | 0100 0010 |
| 99 | 1100011 | 1001 1001 |
| 255 | 11111111 | 0010 0101 0101 |
ДДП менее эффективен в плане использования места, чем чистое двоичное (используются 10 из 16 возможных 4-битных комбинаций), но упрощает десятичное отображение — каждая четверка напрямую соответствует отображаемому цифре. ДДП используется в цифровых часах, калькуляторах, финансовых системах (где точное десятичное представление имеет значение), а также в старых основных базах данных (COBOL, IBM EBCDIC).
Фloating-Point Binary (IEEE 754)
Десятичные числа с дробной частью (например, 3,14) хранятся в бинарном виде по стандарту IEEE 754. 32-битное (одиночное) плавающее число состоит из трех частей:
| Поле | Биты | Назначение |
|---|---|---|
| Знак | 1 | 0 = положительное, 1 = отрицательное |
| Экспонента | 8 | Сдвигаемая экспонента (сдвиг = 127) |
| Мантисса (знаменатель) | 23 | Дробная часть (скрытый ведущий 1) |
Пример: десятичное число −6,5 в IEEE 754 одиночной точности:
- Знак = 1 (отрицательное)
- 6,5 в двоичном виде = 110,1₂ = 1,101 × 2² (нормализованное)
- Экспонента = 2 + 127 (сдвиг) = 129 = 10000001₂
- Мантисса = 10100000000000000000000 (23 бита, скрытый ведущий 1 опущен)
- Полная представленность: 1 10000001 10100000000000000000000
Это почему 0,1 + 0,2 ≠ 0,3 в большинстве языков программирования — десятичная дробь 0,1 имеет бесконечное повторяющееся представление в двоичном виде (наподобие 1/3 в десятичном = 0,333…), поэтому она должна быть округлена, внося минимальные ошибки. Для финансовых расчетов используйте библиотеки десятичной арифметики (модуль decimal Python, BigDecimal Java) вместо плавающей запятой.
Кодировка символов: от ASCII до UTF-8
Текст хранится как бинарные числа, сопоставленные с символами. Эволюция кодировки символов отражает глобальное расширение вычислений:
| Кодировка | Год | Биты на символ | Поддерживаемые символы | Примечания |
|---|---|---|---|---|
| ASCII | 1963 | 7 (записано в 8) | 128 | Английские буквы, цифры, знаки препинания |
| Расширенный ASCII (ISO 8859-1) | 1987 | 8 | 256 | Западноевропейские символы (é, ñ, ü) |
| UTF-8 | 1993 | 8–32 (переменная) | 1 112 064 | Назад compatibility с ASCII; стандарт веба |
| UTF-16 | 1996 | 16–32 (переменная) | 1 112 064 | Используется в Java, Windows, JavaScript внутренний |
| UTF-32 | 2000 | 32 (фиксированная) | 1 112 064 | Фиксированная ширина; тратит место для латинского текста |
UTF-8 кодирует ASCII-символы в один байт (идентичен простому ASCII), европейские символы в 2 байта, китайские символы в 3 байта, эмоджи в 4 байта. Более 98% всех веб-страниц используют кодировку UTF-8 (по данным W3Techs, 2024).
Бинарные логические ключи
Логические ключи — это физические строительные блоки всех цифровых схем. Каждый ключ выполняет простую бинарную операцию над одним или двумя входными битами:
| Ключ | Символ | Таблица истинности (A,B → Выход) | Описание |
|---|---|---|---|
| И | A·B | 0,0→0; 0,1→0; 1,0→0; 1,1→1 | Выход равен 1 только тогда, когда оба входа равны 1 |
| ИЛИ | A+B | 0,0→0; 0,1→1; 1,0→1; 1,1→1 | Выход равен 1, когда хотя бы один вход равен 1 |
| НЕ | ¬A | 0→1; 1→0 | Инвертирует вход |
| НАНД | ¬(A·B) | 0,0→1; 0,1→1; 1,0→1; 1,1→0 | И после НЕ — универсальный ключ |
| ХОР | A⊕B | 0,0→0; 0,1→1; 1,0→1; 1,1→0 | Выход равен 1, когда входы различны |
Ключ НАНД называется универсальным ключом, потому что любую другую логическую функцию можно построить с помощью только ключей НАНД. Современные ЦПУ содержат миллиарды транзисторов, расположенных в ключах НАНД и НОР, которые затем объединяются в сложители, мультиплексоры, флип-флопы и все остальные строительные блоки процессора. Чип Apple M3 содержит примерно 25 миллиардов транзисторов — каждый из них микроскопический бинарный переключатель, который либо включен (1), либо выключен (0).
Ключ ХОР имеет особенность: он выдает 1, когда два входа различны. Это делает его основой для бинарной арифметики (сумма бита полупреобразователя), обнаружения ошибок (паритета) и простой шифровки (шифр ХОР).
История двоичного числа: от Лейбница до современных вычислений
Двоичная система чисел имеет богатую интеллектуальную историю:
| Год | Личность/Событие | Вклад |
|---|---|---|
| ~300 г. до н.э. | Пингала (индийский математик) | Использовал двоичный-like систему для классификации поэтических метров |
| 1679 | Готфрид Лейбниц | Формально описал современную двоичную арифметику; увидел связи с китайским И Чин |
| 1847 | Джордж Буль | Опубликовал "Математический анализ логики" — основание булевой алгебры |
| 1937 | Клод Шеннон (магистерская работа в МИТ) | Показал, что булевая алгебра может моделировать электрические переключатели |
| 1945 | Джон фон Нейман | Предложил двоичную архитектуру компьютера (архитектура фон Неймана) |
| 1971 | Intel 4004 | Первый коммерческий микропроцессор — 2 300 транзисторов, 4-битная двоичная |
| 2024 | Современные ЦП | Миллиарды транзисторов; 64-битная двоичная архитектура стандарт |
Взглянув на то, что все числа можно выразить только с помощью 0 и 1, Лейбниц понял это как чисто математический факт — он никогда не предполагал электронных компьютеров. Шеннон в своей магистерской работе 1937 года связал булеву (двоичную) логику с электрическими реле, создав теоретическую основу для всех цифровых электронных устройств. Это было названо "возможно, самым важным магистерским трудом XX века".
Двоичные в сетях: IP-адреса и маски подсети
Чтобы понять двоичные числа, необходимо знать, что IP-адреса и маски подсети — это 32-битные двоичные числа:
| Описание | Дотированная десятичная | Двоичный |
|---|---|---|
| IP-адрес | 192.168.1.100 | 11000000.10101000.00000001.01100100 |
| Маска подсети (/24) | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| Адрес подсети | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
| Адрес широковещания | 192.168.1.255 | 11000000.10101000.00000001.11111111 |
Адрес подсети рассчитывается путем логического "И" IP-адреса и маски подсети. Адрес широковещания устанавливает все биты хоста в 1. Количество используемых адресов хостов = 2^(32−префикс) − 2. Для сети /24: 2⁸ − 2 = 254 используемых хоста.
Обычные размеры подсетей:
| CIDR | Маска подсети | Хосты | Типичное применение |
|---|---|---|---|
| /32 | 255.255.255.255 | 1 | Одиночный адрес хоста |
| /30 | 255.255.255.252 | 2 | Пunkt-to-point-связь |
| /24 | 255.255.255.0 | 254 | Стандартная локальная сеть |
| /16 | 255.255.0.0 | 65 534 | Большая корпоративная сеть |
| /8 | 255.0.0.0 | 16 777 214 | Класс А |
Частые вопросы
Как преобразовать двоичное 1100 в десятичное?
1100 в двоичном: 1×8 + 1×4 + 0×2 + 0×1 = 8 + 4 = 12. Следовательно, двоичное 1100 = десятичное 12.
Что такое 255 в двоичном?
255 в двоичном — 11111111 — все 8 бит установлены в 1. Это максимальное значение одного байта и появляется в сетях (маска подсети 255.255.255.0) и цветах (полный красный = 255, 0, 0).
Как преобразовать десятичное 100 в двоичное?
Повторно делите на 2: 100÷2=50 Остаток 0, 50÷2=25 Остаток 0, 25÷2=12 Остаток 1, 12÷2=6 Остаток 0, 6÷2=3 Остаток 0, 3÷2=1 Остаток 1, 1÷2=0 Остаток 1. Читая остатки вверх: 1100100₂. Проверьте: 64+32+4 = 100. ✓
Что такое разница между двоичным и шестнадцатеричным?
Двоичный использует основание 2 (цифры 0–1); шестнадцатеричный использует основание 16 (цифры 0–9, A–F). Шестнадцатеричный — компактная запись двоичного — каждая шестнадцатеричная цифра представляет собой ровно 4 двоичных бита. Например, шестнадцатеричный FF = двоичный 11111111 = десятичное 255.
Почему компьютеры используют двоичные числа вместо десятичных?
Электронные схемы естественным образом двоичны: транзистор либо включен (1), либо выключен (0), а напряжение либо высокое, либо низкое. Десятичные числа требуют 10 различных уровней напряжения, что сложно реализовать надежно в hardware. Двоичные числа нетолерантны к шуму и идеально соответствуют логическим true/false-операциям.
Что такое двойное дополнение?
Двойное дополнение — стандартный метод представления подписанных (положительных и отрицательных) целых чисел в двоичном виде. Чтобы найти двойное дополнение (отрицательное) числа: инвертируйте все биты и добавьте 1. В 8-битной системе +5 — 00000101, а -5 — 11111011. Левая часть — знаковая бита: 0 — положительное, 1 — отрицательное. Этот метод позволяет использовать один и тот же циркуит сложения для сложения и вычитания.
Как преобразовать двоичное в шестнадцатеричное?
Группируйте двоичные цифры в наборы по 4 с правой стороны, а затем преобразуйте каждый набор. Пример: 10110101₂ → 1011 0101 → B5₁₆. Группировки: 0000=0, 0001=1, 0010=2, ..., 1001=9, 1010=A, 1011=B, 1100=C, 1101=D, 1110=E, 1111=F.