Байты с битами) Просто и основательно о системах счисления #binary
Объясняю как понимать, вычислять и конвертировать bin, hex, dec из одной системы счисления в другую. #numbersystem #hex #bits Помогут нам листик и ручка. Будем проверять и переводить тоже в python3 или в браузере с консолью для отладки javascript. Покажу и на практике объясню как использую цифру 1 и 0 компьютеры делают все остальное. - Как процессоры понимают наши числа. - Как преобразовать числа в бинарные (bin) и шестнадцатиричные (hex) - В чем это можно сделать кроме головы) Как работают процессоры на единичках? В логике есть True и False и из цифер компьютер берет 1 для трю и фалс для нуля. 000 это 0 001 это 1 010 это 2 011 это 3 100 это 4 101 это 5 110 это 6 111 это 7 1000 это 8 1001 это 9 1010 это 10 и так далее... Но Bin записи программы отображают для удобства в HEX (16-ричном виде): 8 это 8 9 это 9 A это 10 B это 11 C это 12 D это 13 E это 14 F это 15 т.е. 16 на 16 вариантов может быть следовательно 2в8-й это 256 bit: 1/0 8-bit byte: 1111 1111 = 255 = FF 0001 1010 = 1A И формат такого отображения это пара hex'ов: AF, 4E, 6D и т.д. Пример файла в хексе командой: xxd youfilename.txt OSN - это основание системы счисления: 2 (бинар - b), 8 (окта - o), 16 (хекс - h) POS - позиция в последовательности суммирования. to Bin: компонент_суммы_для_числа * OSN^POS т.е. 103 = 1 * 10^2 + 0 * 10^1 + 3 * 10^0 42 -- переведём в двоичную: 42/2 = целым 21, остаток 0 21/2 = целым 10, остаток 1 10/2 = целым 5, остаток 0 5/2 = целым 2, остаток 1 2/2 = целым 1, остаток 0 1/2 = целым 0, остаток 1 выстроим в последовательность: 10 1010 или 0010 1010 = 2A И обратно будет как суммы компонентов множителей для числа основания в его позиционной степени... n4 * 2^3 + n3 * 2^2 + n2 * 2^1 + n1 * 2^0 b1010 = 1*2^3+0*2^2+1*2^1+0*2^0 = 1*8+ 0*4 +1*2+0*1 = 8+0+2+0 = 10 Преобразование Bin to Hex: Python: hex(int('101010', 2)) JS: parseInt(101010, 2).toString(16) Преобразование Hex to Bin: Python: bin(int('FA', 16)) JS: parseInt('FA', 16).toString(2) Преобразование Hex to Dec: Python: int('DF', 16) JS: parseInt('FE', 16) Преобразование Dec to Hex: Python: int('0F', 16) JS: parseInt('FE', 16) Преобразование Dec to Hex: Python: hex(1990) JS: 42..toString(16) Преобразование Bin to Dec: Python: 0b010101 JS: parseInt(10000000000, 2)
Объясняю как понимать, вычислять и конвертировать bin, hex, dec из одной системы счисления в другую. #numbersystem #hex #bits Помогут нам листик и ручка. Будем проверять и переводить тоже в python3 или в браузере с консолью для отладки javascript. Покажу и на практике объясню как использую цифру 1 и 0 компьютеры делают все остальное. - Как процессоры понимают наши числа. - Как преобразовать числа в бинарные (bin) и шестнадцатиричные (hex) - В чем это можно сделать кроме головы) Как работают процессоры на единичках? В логике есть True и False и из цифер компьютер берет 1 для трю и фалс для нуля. 000 это 0 001 это 1 010 это 2 011 это 3 100 это 4 101 это 5 110 это 6 111 это 7 1000 это 8 1001 это 9 1010 это 10 и так далее... Но Bin записи программы отображают для удобства в HEX (16-ричном виде): 8 это 8 9 это 9 A это 10 B это 11 C это 12 D это 13 E это 14 F это 15 т.е. 16 на 16 вариантов может быть следовательно 2в8-й это 256 bit: 1/0 8-bit byte: 1111 1111 = 255 = FF 0001 1010 = 1A И формат такого отображения это пара hex'ов: AF, 4E, 6D и т.д. Пример файла в хексе командой: xxd youfilename.txt OSN - это основание системы счисления: 2 (бинар - b), 8 (окта - o), 16 (хекс - h) POS - позиция в последовательности суммирования. to Bin: компонент_суммы_для_числа * OSN^POS т.е. 103 = 1 * 10^2 + 0 * 10^1 + 3 * 10^0 42 -- переведём в двоичную: 42/2 = целым 21, остаток 0 21/2 = целым 10, остаток 1 10/2 = целым 5, остаток 0 5/2 = целым 2, остаток 1 2/2 = целым 1, остаток 0 1/2 = целым 0, остаток 1 выстроим в последовательность: 10 1010 или 0010 1010 = 2A И обратно будет как суммы компонентов множителей для числа основания в его позиционной степени... n4 * 2^3 + n3 * 2^2 + n2 * 2^1 + n1 * 2^0 b1010 = 1*2^3+0*2^2+1*2^1+0*2^0 = 1*8+ 0*4 +1*2+0*1 = 8+0+2+0 = 10 Преобразование Bin to Hex: Python: hex(int('101010', 2)) JS: parseInt(101010, 2).toString(16) Преобразование Hex to Bin: Python: bin(int('FA', 16)) JS: parseInt('FA', 16).toString(2) Преобразование Hex to Dec: Python: int('DF', 16) JS: parseInt('FE', 16) Преобразование Dec to Hex: Python: int('0F', 16) JS: parseInt('FE', 16) Преобразование Dec to Hex: Python: hex(1990) JS: 42..toString(16) Преобразование Bin to Dec: Python: 0b010101 JS: parseInt(10000000000, 2)