Бинарный калькулятор
Выполните двоичное сложение, вычитание, умножение и деление. Преобразуйте между двоичным и десятичным. Бесплатный математический калькулятор. Получите мгновенные результаты сейчас.
Система двоичных чисел: как считают компьютеры
Бинарная система чисел (база-2) использует только две цифры - 0 и 1 - называемые битами (бинарные цифры). Каждый компьютер, смартфон и цифровое устройство внутренне хранит и обрабатывает всю информацию в двоичном виде, потому что электрические схемы могут надежно представлять два различных состояния: высокое напряжение (1) и низкое напряжение (0).
Каждая позиция в двоичном числе представляет собой степень 2, увеличивающуюся справа налево:
| Положение | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
|---|---|---|---|---|---|---|---|---|
| Стоимость | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Перевод из бинарной системы в десятичную:Умножьте каждый бит на его значение и суммируйте все результаты.
Пример:101101012= 1x128 + 0x64 + 1x32 + 1x16 + 0x8 + 1x4 + 0x2 + 1x1 = 128 + 32 + 16 + 4 + 1 =181 год
Преобразование десятичной в бинарную систему:Неоднократно делите на 2, записывая остаток на каждом шаге, а затем читайте остатки снизу вверх.
Пример: преобразование 181 в двоичный код:
- 181 ÷ 2 = 90 остаток1
- 90 ÷ 2 = 45 остаток0
- 45 ÷ 2 = 22 остаток1
- 22 ÷ 2 = 11 остаток0
- 11 ÷ 2 = 5 остаток1
- 5 ÷ 2 = 2 остаток1
- 2 ÷ 2 = 1 остаток0
- 1 ÷ 2 = 0 остаток1
Прочитай остатки снизу вверх:101101012 ✓
Бинарная арифметика: сложение, вычитание и умножение
Бинарная арифметика следует тем же правилам, что и десятичная, но перемещения происходят на 2 вместо 10.
Правила двоичного сложения:0+0=0, 0+1=1, 1+0=1, 1+1=10 (нести 1), 1+1+1=11 (нести 1)
Пример: 10112 + 11012 (11 + 13 = 24)
1011 + 1101 ------ 11000
Работа справа налево: 1+1=10 (написать 0, перенести 1); 1+0+1=10 (написать 0, перенести 1); 0+1+1=10 (написать 0, перенести 1); 1+1+1=11 (написать 1, перенести 1); окончательный перенос записывает 1. Результат: 110002 = 24
Дополнение двух (бинарное вычитание):Компьютеры обрабатывают отрицательные числа и вычитание, используя представление дополнения двух. Чтобы найти дополнение двух числа: переверните все биты, затем добавьте 1.
Пример: -13 в 8-битном дополнении двух: +13 = 000011012 -> перевернуть все биты -> 111100102 -> добавить 1 ->111100112
Это позволяет выполнять вычитание как сложение: 20 - 13 = 20 + (-13).
Бинарное умножениеявляется элегантным: каждое частичное произведение равно либо 0 (умножение на 0), либо самому числу (умножение на 1), смещенному влево. Пример: 10112 x 1012 (11 x 5 = 55):
1011 х 101 ----- 1011 (1011 х 1) 0000 (1011 х 0, смещенный) 1011 (1011 х 1, смещенный дважды) ------- 1101112 = 55
Бинарная система в вычислениях: биты, байты и размеры данных
Понимание бинарных единиц важно для всех, кто работает с компьютерами, хранилищами или сетевыми скоростями:
| Единица | Размер | Максимальная стоимость (без подписи) | Распространенное использование |
|---|---|---|---|
| Немного . | 1 двоичная цифра | 1 | Булевой флаг, одно двоичное значение |
| Немного . | 4 бита | 15 (шестиугольник: F) | Одна шестнадцатеричная цифра |
| Байт | 8 бит | 255-я | Однозначный символ (ASCII), цветный канал |
| Слово . | 16 бит | 65535 человек | Предыдущие 16-битные системы, основанные на Unicode |
| Двойное слово (DWORD) | 32 бита | 4 294 967 295 | 32-битные целые числа, адреса IPv4 |
| Квадворд (QWORD) | 64 бит | 18,446,744,073,709,551,615 | Современные целые числа, указатели, временные метки |
Цветные значения:Web colors use 24-bit RGB (8 bits per channel). #FF5733 = R:255, G:87, B:51. Каждый 8-битный канал может представлять 256 оттенков (0 - 255).16 777 216(около 16,7 миллиона).
Разрешения на файлы в Unix/Linux:rwxr-xr-- = 111 101 100 в двоичном = 7, 5, 4 в октальном = chmod 754. Каждый набор из 3 битов представляет чтение (r=4), запись (w=2) и выполнение (x=1) разрешений для владельца, группы и других.
Битовые операции и их применение
Операции по битам манипулируют отдельными битами внутри целых чисел. Они имеют фундаментальное значение для низкоуровневого программирования, криптографии, сетевого программирования и критического для производительности кода.
| Операция | Символ | Поведение | Пример |
|---|---|---|---|
| И | & | 1 если оба бита равны 1. | 1010 и 1100 = 1000 |
| OR | | | 1 если любой бит равен 1 | 1010 -- 1100 = 1110 |
| XOR | ^ | 1 если биты разные | 1010 ^ 1100 = 0110 |
| Нет , нет . | ~ | Перевернуть все биты | ~1010 = 0101 |
| Левый сдвиг | << | Биты сдвига слева (x2 для каждого сдвига) | 1011 << 1 = 10110 (x2) |
| Сдвиг направо | >> | Сдвиг битов вправо (÷2 каждый сдвиг) | 1011 >> 1 = 0101 (÷2) |
Практическое применение:
- Маскировка битов:Проверьте, установлен ли определенный бит:
if (flags & 0b0100) { ... }-- проверяет, что бит 2 равен 1. - Немного настройки:
flags = flags | 0b0100-- устанавливает бит 2 к 1, независимо от текущего значения. - Поясняю немного:
flags = flags & ~0b0100-- очищает бит 2 до 0. - Быстрое умножение/разделение на степень 2:
n << 3= n х 8;n >> 2= n ÷ 4. Битовые сдвиги - это операции на уровне процессора, значительно более быстрые, чем умножение. - Проверка четная/нечетная:
if (n & 1) { /* odd */ }-- последний бит любого нечетного числа всегда равен 1.
Сравнение систем чисел: двоичная, октальная, десятичная, шестидесятичная
В информатике используются четыре системы чисел, каждая из которых подходит для разных контекстов:
| Система | База | Цифры | Распространенное использование |
|---|---|---|---|
| Бинарный (база-2) | 2 | 0, 1 | Операции процессора, память, логика |
| Октал (база-8) | 8 | 0 - 7 | Разрешения на файлы Unix, более старые системы |
| Десятичная цифра (база 10) | 10 | 0 - 9 | Числа, читаемые человеком |
| Шестидесятеричный (база-16) | 16 | 0 - 9, А - Ф | Адреса памяти, цветовые коды, код машины |
Быстрое преобразование: двоичный <-> шестичленный(4 двоичные цифры = 1 шестнадцатеричная цифра):
| Бинарная система | Хекс . | Десятичная | Бинарная система | Хекс . | Десятичная |
|---|---|---|---|---|---|
| Двадцать тысяч. | 0 | 0 | 1000 рублей | 8 | 8 |
| 0001 | 1 | 1 | 1001 год | 9 | 9 |
| 0010 | 2 | 2 | 10 - 10 | A | 10 |
| 0011 год | 3 | 3 | 1011 год | B | 11 |
| 0100 - - - - | 4 | 4 | 1100 г. | C | 12 |
| 0101 - - - - - | 5 | 5 | 1101 год | D | 13 |
| 0110 | 6 | 6 | 1110 год | E | 14 |
| 0111 год | 7 | 7 | 1111 год | F | 15 |
Эта 4-битовая группировка делает гекса чрезвычайно полезным как компактная нотация для бинарных данных: 32-битное значение11001010 00111111 10110101 00001100гораздо проще написать какCA3FB50C.
Бинарный код в сети: IP-адреса и маски подсетей
Понимание бинарной системы важно для сетевой инженерии, потому что адреса IPv4 в основном представляют собой 32-разрядные бинарные числа, а подсети - процесс разделения сетей - полностью опирается на бинарные операции.
IPv4-адрес вроде192.168.1.100является человекочитаемым обозначением для 32-битного бинарного значения:
11000000.10101000.00000001.01100100
A маска подсетиопределяет, какая часть адреса идентифицирует сеть, а какая - хост.
11111111.11111111.11111111.00000000
Битовая AND IP-адреса и маски подсети дает сетевой адрес:
| Компонент | Десятичная | Бинарная система |
|---|---|---|
| IP-адрес | 192.168.1.100 | 11000000.10101000.00000001.01100100 - - - - - - - - - - - |
| Маска подсети | 255.255.255.0 | 111111111111111111111111111111 |
| Сеть (И) | 192.168.1.0 | 11000000.10101000.00000001.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 |
CIDR обозначение (например, /24) говорит вам, сколько ведущих 1-битов находится в маске подсети. Маска /24 имеет 24 единицы, за которыми следуют 8 нулей, что позволяет 28 - 2 = 254 используемых адресов хоста на подсеть. Маска /16 позволяет 65 534 хостов. Инженеры сети используют бинарную ментальную математику ежедневно для планирования подсетей, вычисления адресов вещания и устранения неполадок маршрутизации.
Бинарная криптография и безопасность
Современные алгоритмы шифрования работают полностью на бинарном уровне, манипулируя отдельными битами посредством комбинаций XOR, битовых сдвигов и операций замещения.
Шифрование XOR (основа современных шифров):XOR имеет уникальное свойство - применение его дважды с помощью одного и того же ключа возвращает первоначальное значение: A K K = A. Это делает XOR основой потоковых шифров и одноразовых клавиш.
Пример: шифрование байта 01001101 (буквы "M" в ASCII) с помощью ключа 10110010:
- Чистый текст: 01001101
- Ключ 10110010
- XOR (шифрование): 11111111
- XOR снова с тем же ключом (дешифровка): 01001101 = "M"
Размеры ключа в современном шифровании:AES-128 использует 128-битный ключ, что означает, что существует 2128 ~ 3.4 x 1038 возможных ключей - больше, чем количество атомов в наблюдаемой вселенной. AES-256 использует 256-битные ключи с 2256 возможностями. Даже самые быстрые суперкомпьютеры не могут использовать грубую силу для этих ключевых пространств. Каждый дополнительный бит удваивает пространство поиска, поэтому длина ключа имеет экспоненциальное значение в криптографии.
Хеш-функции, такие как SHA-256, производят 256-битный (32-байтовый) двоичный выход из любого ввода. Даже однобитное изменение ввода производит совершенно другой хэш - свойство, называемое "эффектом лавины", которое делает хэши полезными для проверки целостности данных, хранения паролей и поддержки технологии блокчейна.
Бинарные и квантовые вычисления:В то время как классические компьютеры используют бинарные биты (0 или 1), квантовые компьютеры используют кубиты, которые могут существовать в суперпозиции обоих состояний одновременно.
Часто задаваемые вопросы
Почему компьютеры используют двоичный код вместо десятичного?
Электронные схемы наиболее надежны только с двумя различными состояниями: включенным (высокое напряжение ~ 1) и выключенным (низкое напряжение ~ 0). Представление 10 различных состояний для десятичных требовало бы гораздо более точного управления напряжением и было бы гораздо более восприимчивым к электрическому шуму. Простота бинарного позволяет миллиардам транзисторов надежно работать на скоростях GHz с миллиардами операций в секунду.
Какое самое большое число может содержать байт?
Байт (8 битов) может представлять 28 = 256 различных значений. Для неподписанных целых чисел: от 0 до 255. Для подписанных целых чисел (дополнение двух): от -128 до 127. Максимальное значение байта в двоичном исчислении составляет 111111112 = 255; в шестичленном исчислении это FF.
Как я преобразую отрицательное число в двоичное?
Используйте дополнение двух: (1) Преобразуйте положительную версию в двоичную, (2) Переверните все биты (0->1, 1->0), (3) Добавьте 1. Пример: -13 в 8-битах: +13 = 000011012, переверните биты = 111100102, добавьте 1 = 111100112.
В чем разница между бинарным и гексадецимальным?
Оба являются позиционными числовыми системами, используемыми в вычислениях. Бинарный (база-2) использует только 0 и 1 - родной язык компьютеров. Гексадециальный (база-16) использует 0 - 9 и A - F в качестве компактной обозначения для бинарного - каждые 4 двоичных цифры соответствуют точно 1 шестизначной цифре. Hex используется для адресов памяти, цветовых кодов (#RRGGBB) и машинного кода, потому что он более компактный и читаемый, чем необработанный двоичный.
Для чего используются битовые операции?
Операции по битам (AND, OR, XOR, NOT, shifts) манипулируют отдельными битами внутри целых чисел.
Что такое бинарная плавающая точка и почему 0.1 + 0.2 ≠ 0.3 в программировании?
Большинство современных компьютеров используют IEEE 754 двоичную плавающую запятую, которая представляет десятичные дроби в двоичной системе. Так же, как 1/3 = 0,3333... не может быть представлена точно в десятичной системе, 1/10 не может быть представлена точно в двоичной системе (это бесконечно повторяющаяся двоичная дробица). Это вызывает крошечные ошибки округления: на большинстве языков, 0,1 + 0,2 = 0,30000000000000004. Используйте целочисленную арифметику (работа в центах, а не долларах) или десятичные библиотеки для точных финансовых расчетов.
Как используется двоичный код при хранении данных и размерах файлов?
Хранилище измеряется в байтах (8 бит), килобайтах (1024 байтах), мегабайтах (1024 КБ), гигабайтах (1024 МБ) и т. д. Примечание: производители жестких дисков используют префиксы SI (1 КБ = 1000 байт), в то время как операционные системы используют бинарные префиксы (1 КБ = 1024 байт), вызывая очевидную несоответствие "недостающего пространства" при покупке хранилища.
Что такое двоично-кодированная десятичная цифра (BCD)?
BCD кодирует каждую десятичную цифру в виде 4-битной двоичной группы: 0=0000, 1=0001, ..., 9=1001. Таким образом, десятичная цифра 93 в BCD равна 1001 0011. BCD используется в финансовых системах (избегает ошибок округления с плавающей запятой), цифровых часах и дисплеях (7-сегментных дисплеях непосредственно декодируют BCD) и старых мейнфреймовых системах.