bringer.ru

Двоичные
числа

Битовые операции, конструктор масок, визуализатор IEEE 754, кодирование текста и таблица степеней двойки — всё в одном месте.

AND / OR / XORБитовая маскаIEEE 754Текст → BINСтепени 2Справочник
01Побитовый калькулятор
AДесятичное
BДесятичное
Введите числа A и B…
DECРезультат
HEXРезультат
BINРезультат
02Конструктор битовой маски
Байт 3
031
030
029
028
027
026
025
024
Байт 2
023
022
021
020
019
018
017
016
Байт 1
015
014
013
012
011
010
09
08
Байт 0
07
06
05
04
03
02
01
00
DEC0
HEX0x00000000
BIN00000000 00000000 00000000 00000000
03Визуализатор IEEE 754 (float32)
Введите число с плавающей точкой…
04Текст ↔ двоичный код
Текст (UTF-8)
Двоичный код
05Степени двойки — справочная таблица
СтепеньЗначениеHEXПрименение
2010x11 бит — минимальная единица информации
2120x22 — два состояния (0 и 1)
2240x44 — цвета 2-битного дисплея
2380x88 — байт со знаком: −4…+3
24160x1016 — нибл: одна HEX-цифра
25320x2032 — ASCII-символы (печатные)
26640x4064 — Base64-алфавит
271280x80128 — диапазон int8 (−128…127)
282560x100256 — диапазон uint8 / 1 байт
295120x200512 — сектор на дискете
2101 0240x4001 024 = 1 КиБ
2112 0480x8002 048 — RSA минимальный ключ (бит)
2124 0960x10004 096 = 4 КиБ — страница памяти (x86)
2138 1920x20008 192 = 8 КиБ — страница памяти (ARM)
21416 3840x400016 384 = 16 КиБ
21532 7680x800032 768 — диапазон int16
21665 5360x1000065 536 — диапазон uint16 / 64 КиБ
217131 0720x20000131 072 = 128 КиБ
218262 1440x40000262 144 = 256 КиБ
219524 2880x80000524 288 = 512 КиБ
2201 048 5760x1000001 048 576 = 1 МиБ
2212 097 1520x2000002 МиБ — огромная страница (huge page)
2224 194 3040x4000004 МиБ
2238 388 6080x8000008 МиБ — мантисса float32 (неявный 1 + 23 бита)
22416 777 2160x100000016 МиБ — диапазон uint24 / цвет RGB
22533 554 4320x200000032 МиБ
22667 108 8640x400000064 МиБ
227134 217 7280x8000000128 МиБ
228268 435 4560x10000000256 МиБ
229536 870 9120x20000000512 МиБ
2301 073 741 8240x400000001 073 741 824 = 1 ГиБ
2312 147 483 6480x800000002 ГиБ — диапазон int32 (со знаком)
2324 294 967 2960x1000000004 ГиБ — диапазон uint32 / адресное пространство x86
2338 589 934 5920x2000000008 ГиБ
23417 179 869 1840x40000000016 ГиБ
23534 359 738 3680x80000000032 ГиБ
23668 719 476 7360x100000000064 ГиБ
2401 099 511 627 7760x100000000001 ТиБ
248281 474 976 710 6560x1000000000000256 ТиБ — виртуальное адресное пространство x86-64
2524 503 599 627 370 4960x10000000000000Точность мантиссы float64 (52 + 1 бита)
2539 007 199 254 740 9920x20000000000000Максимум точного целого в JS (Number.MAX_SAFE_INTEGER + 1)
2639 223 372 036 854 775 8080x80000000000000009.2 × 10¹⁸ — диапазон int64 (со знаком)
06Справочник
Битовые операции
ОперацияA=1010, B=1100Результат
AND (&)1010 & 11001000
OR (|)1010 | 11001110
XOR (^)1010 ^ 11000110
NOT (~)~0000101011110101
SHL (<<)1010 << 110100
SHR (>>)1010 >> 10101
Сдвиг влево на N = умножение на 2ⁿ. Сдвиг вправо на N = целочисленное деление на 2ⁿ.
Типы данных и диапазоны
ТипБитДиапазон
bool10 / 1
int88−128 … +127
uint880 … 255
int1616−32 768 … +32 767
uint16160 … 65 535
int3232−2.1 × 10⁹ … +2.1 × 10⁹
uint32320 … 4.3 × 10⁹
int6464−9.2 × 10¹⁸ … +9.2 × 10¹⁸
float3232±3.4 × 10³⁸, ~7 знаков
float6464±1.8 × 10³⁰⁸, ~15 знаков
Единицы объёма памяти
НазваниеТочноПриближённо
1 КиБ2¹⁰ = 1 024 байт≈ 1 000 байт
1 МиБ2²⁰ = 1 048 576 байт≈ 10⁶ байт
1 ГиБ2³⁰ = 1 073 741 824 байт≈ 10⁹ байт
1 ТиБ2⁴⁰ байт≈ 10¹² байт
1 ПиБ2⁵⁰ байт≈ 10¹⁵ байт
КиБ/МиБ/ГиБ (кибибайты) — степени двойки. КБ/МБ/ГБ — степени 10. Разница растёт: 1 ГиБ ≠ 1 ГБ.
Дополнительный код (Two's complement)

Стандарт хранения отрицательных целых чисел в памяти. Чтобы получить −N: инвертировать все биты и прибавить 1.

Число8-бит BINHEX
+1000000010x01
−1111111110xFF
+127011111110x7F
−128100000000x80
0000000000x00
Старший бит = 1 → число отрицательное. Именно поэтому NOT A в калькуляторе выдаёт «отрицательное» число.
Типичные битовые маски
МаскаHEXНазначение
Младший байт0x000000FFВыделить 8 мл. бит
Старший байт0xFF000000Alpha в ARGB
R-канал0x00FF0000Red в RGB
G-канал0x0000FF00Green в RGB
B-канал0x000000FFBlue в RGB
chmod 7770x1FF (511)rwxrwxrwx
chmod 7550x1ED (493)rwxr-xr-x
chmod 6440x1A4 (420)rw-r--r--
Сеть /240xFFFFFF00255.255.255.0
Сеть /160xFFFF0000255.255.0.0
IEEE 754 — float32
S
1
Экспонента (E)
8 бит
Мантисса (M)
23 бита

Значение = (−1)S × 1.M × 2(E−127)

СлучайEM
Ноль00
Денормализованное0≠ 0
Нормальное1…254любое
±Infinity2550
NaN255≠ 0
Почему 0.1 + 0.2 ≠ 0.3? Число 0.1 не представимо точно в двоичной дроби — хранится приближение.
«» добавлен в избранное