- Что такое системы счисления
- Виды систем счисления
- Основание позиционной системы счисления
- Расширенная запись числа и перевод из Nсс в 10сс
- Перевод из 10сс в Ncc
- Лайфхак или как быстрее закодировать геном
- От десятичных чисел к двоичным
- Зачем нужна двоичная система
- Как переводить двоичные числа в десятичные
- Как переводить десятичные числа в двоичные
- Шестнадцатеричная система счисления
- Восьмеричная система счисления
- Конвертация чисел в программах
- Python
- JavaScript
- Сервисы для перевода из системы в систему
Что такое системы счисления
С древних времен у людей была потребность записывать числа. В торговле цифры нужны, чтобы знать, сколько товаров есть на складе и сколько денег принесла транзакция. Запись положения небесных тел помогла шумерам составить первый календарь, а календарь в свою очередь пригодился для заблаговременной подготовки к севу и сбору урожая. Строительные сметы, переписи, распределение наследства — цифры оказались очень популярными даже в древнейших государствах.
Так люди учились писать числа с незапамятных времен. Небольшие числа легко записывались насечками или насечками, но если в числе больше знаков, требуется другая система обозначений. Эта проблема решалась по-разному в разных странах.
Сейчас разные способы записи чисел называют системами счисления.
Было изобретено довольно много систем счисления, и даже сегодня мы используем две системы, возникшие в древние времена. Из Древнего Рима к нам пришла римская система счисления, где числа обозначаются буквами латинского алфавита. Римляне взяли за отправную точку количество пальцев на одной руке — 5, а на двух руках — 10. Числа 1, 5 и 10 в римской системе обозначаются буквами I, V и X, и их можно используется для записи любых чисел от 1 до 49. Например, VII — это 7, а XIX — 19.
От древних шумеров мы научились делить дроби на шестьдесят частей. Именно благодаря им в нашем часе 60 минут, а в минуте 60 секунд. Шумерская система счисления называется шестидесятеричной. Но самым известным, конечно же, является числовое обозначение в системе, придуманной в Древней Индии. Сейчас ее называют арабской или десятичной системой счисления.
Виды систем счисления
Система счисления — это модель, позволяющая записывать числа по определенным правилам.
Существует два основных типа систем счисления:
- позиционный,
- непозиционный.
Непозиционные системы счисления основаны на том, что значение цифр никак не зависит от их положения в числе.
Возьмите фермера и его овец. Какой самый практичный способ записать количество овец? Самый простой пример — счет с одной насечкой. Затем мы считаем овец в нашем стаде одну за другой и обозначаем каждую отдельную засечку, когда пишем.
Очевидно, что это нецелесообразно. В наших интересах разводить овец. Но чем их больше, тем менее читаема такая запись. Когда мы достигнем невиданных высот в животноводстве, и у нас будет 2796 голов, их невозможно будет посчитать с засечками.
Римская система счисления — еще один известный пример непозиционной системы счисления. В нем уже фигурируют символы для обозначения отдельных цифр. Но в какой бы позиции ни находился символ, он все равно означает только сам себя:
- В 1;
- В — 5;
- Х — 10 и так далее.
Римская система счисления упрощает написание чисел, но не решает полностью проблему нарушения чтения. Например, число 2796 в римской записи будет выглядеть как MMDCCXCVI. Уже неудобно.
В позиционных системах счисления значение цифры зависит от того, в какой позиции она находится.
На примере нашей исходной десятичной системы счисления мы понимаем, что в числе 1234:
- 1 — число тысяч, и означает не 1, а 1000;
- 2 обозначает число сотен и понимается как 200;
- 3 отвечает за число десятков и означает 30;
- 4 находится в самой последней позиции и означает количество единиц, поэтому в данном случае 4 равно 4.
Это значительно упрощает чтение чисел любого размера, так как меняется сам принцип их чтения:
- В непозиционной системе счисления (на примере римской): СХХIII = 100 + 10 + 10 + 1 + 1 + 1 = 123.
- В положении: 123 = 100 + 20 + 3.
Это система счисления позиций, которую компетентный фермер выберет для подсчета количества овец.
Основание позиционной системы счисления
Позиционная система счисления характеризуется своей основой, количеством цифр, которые она использует для записи чисел.
- Десятичная система счисления (10сс) использует 10 цифр — от 0 до 9, мы с ней знакомы с детства.
- Компьютеру больше знакома двоичная система счисления (2сс), в которой используются 2 цифры — 1 и 0.
- В двенадцатеричной системе счисления (12cc) помимо цифр 0–9 необходимы два дополнительных символа. Для простоты заменим их буквами: A = 10, B = 11. Теперь у нас 12 символов от 0 до B.
- Кроме того, печально известная система счисления — шестнадцатеричная. Для нее помимо цифр 0-9 нужно еще больше символов для обозначения всех цифр. Происходит это аналогично — каждая новая буква отвечает за большее значение: А = 10, В = 11, С = 12, D = 13, Е = 14, F = 15.
Когда 10 не равно 10? Мы используем числа, когда у нас заканчиваются числа. Привычная нам система счисления называется десятичной, потому что в ней используется 10 цифр — от 0 до 9. Чтобы записать значения больше 9, мы начинаем строить числа из цифр. Первое число 10. Если бы мы использовали другое количество цифр, все выглядело бы иначе. При использовании чисел от 0 до 6 мы уже должны строить числа для записи значений больше 6. В этом случае 10 будет равно 7, но эти значения будут записаны с использованием разных систем счисления. |
Построение числа в непривычных для нас системах счисления происходит точно так же, как и в 10сс:
- Мы увеличиваем значения единиц, используя доступные числа.
- Как только цифры заканчиваются, стоимость единиц обнуляется. Появляется новая разрядная цифра, которая также увеличивается от 1 до предела системы счисления.
- Когда любой цифре в числе присваивается значение максимальной цифры, цифра выше увеличивается на 1, а текущая цифра сбрасывается до нуля.
Например:
- В 10сс число 88 будет увеличиваться так:
88 → 89 → 90 → 91 → 92 → … 99 → 100;
- В 2cc цифры будут появляться быстрее из-за малого количества цифр:
1 → 10 → 11 → 100 → 101 → 110 → 111 → 1000;
- В 12сс чуть медленнее, так как цифр больше:
8 → 9 → А → В → 10 → 11 → … 18 → 19 → 1А → 1В → 20 → … 99 → 9А → 9В → А0 → А1 → … АА → АВ → В0 → В1 → … ВА → ВВ.
Арифметика, как и построение числа, одинакова во всех системах счисления:
- Изменение цифр происходит от единиц.
- При сложении превышение суммы увеличивает цифру выше (то есть «пишем в уме 6, 1”).
- При вычитании, если необходимо, берем значение со старшего разряда и уменьшаем его на 1.
Расширенная запись числа и перевод из Nсс в 10сс
Как купить шоколадку у инопланетянина? возможность конвертировать числа из 10сс в другие и наоборот важна для борьбы с инопланетянами. Однажды мы, вероятно, доберемся до внеземных цивилизаций. Но у них может быть не 10 пальцев на руках, а 7, 12 или любое другое количество. Если их представления о математике пошли по пути, подобному нашему, то какую систему счисления они придумали? Когда мы хотим купить инопланетный сникерс за 2256 межгалактических единиц, вполне может оказаться, что наши представления о цифрах сильно отличаются. |
После подсчета пальцев на руках продавца шоколада важно научиться переводить числа из одной системы счисления в другую.
Полная запись числа a1a2a3…ai, где ai — цифра числа i, состоящая из k знаков и имеющая основание системы счисления n, будет выглядеть так:
a1a2a3…ai…ak = a1 * nk — 1 + a2 * nk — 2 +… + ai * nk — i +… + ak * n0.
Например:
- 123 в 10сс записывается так: 1*102+2*101+3*100;
- 1010 в 2cc: 1*23+0*22+1*21+0*20;
- A9B в 12cc: 10*122 + 9*121 + 11*120.
Такой регистрации числа достаточно для перевода значения числа из любой системы счисления в 10cc — нужно вычислить значение составленной записи:
- 10102 = 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 8 + 0 + 2 + 0 = 1010;
- 5259 = 5*92+2*91+5*90=5*81+2*9+5*1=42810;
- A9B12 = 10 * 122 + 9 * 121 + 11 * 120 = 10 * 144 + 9 * 12 + 11 * 1 = 155910.
Перевод из 10сс в Ncc
Принцип деления с остатком поможет перевести числа в другую сторону — из 10сс в любую другую систему счисления.
Алгоритм перевода следующий:
1. Разделить исходное число на основание новой системы счисления.
2. Остаток от деления – новая найденная цифра в числе.
3. Целая часть деления снова делится на основание. Запишем остаток как новую цифру нужной записи, а целую часть деления как цель для следующего деления. Снова разделите всю секцию у основания.
4. Деление продолжается до тех пор, пока целая часть деления не станет равной 0.
5. Цифры нового числа, полученные как остатки от деления, читаются в обратном порядке.
Например, преобразуем число 2589 в 7ss:
- На первом этапе мы делим исходное число на 7, записывая остаток от деления как новую цифру, а целую часть как оставшееся значение.
- На втором шаге делаем то же самое, но с целой частью предыдущего деления — теперь делим ее на 7.
- И так до тех пор, пока целая часть деления не станет равной 0.
Интересующее нас значение находится в крайнем правом столбце и читается снизу вверх.
258910 = 103567
Аналогичным образом происходит переход в системы счисления с основанием больше 10. Вам просто нужно помнить, что числа больше 9 будут отмечены соответствующими буквами.
Например, таблица преобразования десятичного числа 48406 в 16cc будет выглядеть так:
И желаемое значение будет BD16.
Лайфхак или как быстрее закодировать геном
Представьте, что нам нужно написать программу, которую биологи будут использовать в исследованиях ДНК, и реализовать хранение ДНК в памяти компьютера.
В ДНК есть четыре типа азотистых оснований: аденин (А), гуанин (Г), тимин (Т) и цитозин (Ц). Вся ДНК может быть записана как последовательность этих 4 символов. Но тогда вы можете записать эту последовательность букв как число в 4сс, и сопоставить цифры с символами, например код А — 0, С — 1, Г — 2, Т — 3. Тогда кусок ДНК ГГТ будет быть записано в 4cc как 223.
Но чтобы закодировать геном в компьютере, его надо перевести из 4cc в 2cc. Делать это делением можно очень долго, потому что геном может быть очень длинным и делить его просто неэффективно. К счастью, выход есть!
Между 2cc и системами счисления, основанными на степени двойки (4cc, 8cc, 16cc), существует связь, которую можно использовать для быстрого перехода от 2cc к ним и наоборот. Для этого используется следующая таблица:
Алгоритм перевода следующий:
1. Вычислена степень, в которую нужно возвести 2, чтобы получить основание для нужной системы счисления.
2. Используется количество столбцов таблицы, равное этой степени. Считаем из правого столбца.
3. При переводе из 2cc весь код разбивается на кодовые слова длины, равной степени — при необходимости в начало записи добавляются нули. Отдельные кодовые слова заменяются в нижней строке таблицы. Разрядность числа в новой системе счисления будет равна сумме цифр в верхней строке, где стоит 1 кодовое слово.
4. При конвертации в 2cc каждая цифра представляется как сумма цифр в верхней строке таблицы. Цифры, используемые в сумме, соответствуют 1 кодовому слову 2сс, а неиспользуемые — 0.
Например:
- Для перевода между 2cc и 4cc используется часть таблицы:
- Перевод с 2cc на 4cc:
110001 = 11.00.01 = (2 + 1).(0 + 0).(0 + 1) = 3.0.1 = 301 - Перевод с 4cc на 2cc:
103 = 1.0.3 = (0 + 1).(0 + 0).(2 + 1) = 01.00.11 = 10011 - Для перевода между 2cc и 8cc используется часть таблицы:
- Перевод с 2cc на 8cc:
10101011100 = 010.101.011.100 = (0 + 2 + 0).(4 + 0 + 1).(0 + 2 + 1).(4 + 0 + 0) = 2.5.3.4 = 2534
- Перевод с 8cc на 2cc:
1753 = 1.7.5.3 = (0 + 0 + 1).(4 + 2 + 1).(4 + 0 + 1).(0 + 2 + 1) = 001.111.101.011 = 1111101011 - Для перевода между 2cc и 16cc используется полная таблица:
- Перевод с 2cc на 16cc:
101101111000001 = 0101.1011.1100.0001 = (0 + 4 + 0 + 1).(8 + 0 + 2 + 1).(8 + 4 + 0 + 0).(0 + 0 + 0 + 1) = 5.11.121. 5BC1
- Перевод с 16cc на 2cc:
F87A = 15.8.7.10 = (8 + 4 + 2 + 1).(8 + 0 + 0 + 0).(0 + 4 + 2 + 1).(8 + 0 + 2 + 0) = 1111.1000.0111.1010 = 1111100001111010
От десятичных чисел к двоичным
Выясним, как работает десятичная система, на примере сколь угодно большого числа.
Это четырехзначное число, потому что оно состоит из четырех цифр. А так как мы говорим о десятичной системе, мы можем использовать десять разных цифр.
Значение, скрытое за каждой цифрой, зависит от ее положения, поэтому такая система счисления еще называется позиционной. Справа наименьшие значения пишем единицы, слева от них десятки, затем сотни и так далее. Запись 1702 буквально означает следующее.
Числа, написанные на соседних позициях, отличаются в десять раз — это десятичная система. Однако, как мы уже говорили ранее, известная нам десятичная система далеко не единственная. Но опираясь на нее, нам будет легче понять принципы работы других систем счисления. Например, чтобы записать то же самое число 1702 в двоичном виде, мы должны следовать тем же правилам, но вместо десяти цифр нам нужно всего две — 0 и 1.
Числа, написанные на соседних позициях, будут отличаться не в десять раз, а в два. То есть там, где в десятичной системе мы видим 1, 10, 100, 1000, 10 000, в двоичной будут числа 1, 2, 4, 8, 16 и так далее.
Это очень большое двоичное число. Запишем в обычной форме:
Это число может быть очень большим десятичным числом, поскольку оно состоит из одних и тех же цифр. Чтобы отличить двоичные числа от десятичных, в качестве индекса указывают основание системы счисления, то есть 2.
Это особенно важно, когда в тексте встречаются как десятичные, так и двоичные числа.
Зачем нужна двоичная система
Двоичная система выглядит очень необычно и числа, записанные в ней, огромны. Зачем она вообще нужна? Разве компьютеры не могут работать с десятичной системой, к которой мы привыкли?
Оказывается, раньше они так и делали. Самый первый компьютер ENIAC, разработанный в 1945 году, хранил числа в десятичной системе счисления. Для хранения одной цифры использовалась схема, называемая кольцевым регистром; он состоял из десяти радиоламп.
Для записи всех чисел до миллиона — от 0 до 999 999 — нужно шесть цифр, а значит, для хранения таких чисел нужно целых 60 ламп.
Инженеры заметили, что если бы они кодировали числа в двоичном формате, то для хранения таких же больших чисел им понадобилось бы всего двадцать радиоламп — треть этого количества!
Первым преимуществом двоичных чисел является простота схем. Второе, и не менее важное, это производительность. Сложение чисел, хранящихся в кольцевом регистре, требует до десяти циклов процессора на операцию. Сложение двоичных чисел можно выполнить за один такт — то есть в десять раз быстрее.
Группа инженеров, создавших первый компьютер, в 1946 году опубликовала статью, в которой обосновала преимущество двоичной системы представления чисел в компьютерах. Первым среди авторов было имя американского математика Джона фон Неймана. Поэтому принципы проектирования компьютеров теперь называют архитектурой фон Неймана, хотя это не совсем справедливо по отношению к другим изобретателям компьютеров.
При разработке программы довольно сложно столкнуться с двоичной записью: в подавляющем большинстве случаев компьютер сам преобразует двоичные числа в десятичные и наоборот. Можно долго писать код, даже не подозревая, что данные хранятся внутри компьютера особым образом.
Зачем изучать двоичную систему, если за нас все делает компьютер? Иногда программистам приходится писать программы, работающие напрямую с оборудованием. Например, разработчикам игр необходимо знать, как работают видеокарты, чтобы сделать компьютерную графику быстрее. И разработчики операционных систем понимают, как диски предназначены для безопасного хранения данных.
Программы, работающие непосредственно с оборудованием, называются системными или низкоуровневыми программами. Для их создания разработчик должен понимать, как работает компьютер. Поэтому изучение систем счисления позволяет программисту расширить свой профессиональный круг и стать универсалом.
Поэтому для написания сложных системных программ необходимо понимать, как работает двоичная система счисления.
Как переводить двоичные числа в десятичные
Давайте узнаем, как быстро преобразовать двоичные числа в десятичные. В примере потребуется двоичное число, достаточно большое, чтобы мы не могли вычислить его на пальцах.
Давайте запишем это в математической нотации, и помните, что вместо 10 мы используем основание 2.
Из этого примера видно, что все термы имеют только два множителя — 0 и 1. Члены с множителем 0 равны нулю, поэтому их можно отбросить, оставив только члены с множителем 1.
Для терминов с коэффициентом 1 этот коэффициент можно опустить.
Теперь легко рассчитать сумму.
Вывод: число 11010 в двоичном виде равно 26 в десятичном.
Еще раз повторим, как преобразовать двоичное число в десятичное.
- Запишите число в математической форме
- Выбросить условия с множителем 0
- Добавить результат
Программисты иногда запоминают некоторые степени двойки, чтобы оценить порядок двоичных чисел. Вы можете посмотреть на эту таблицу:
12 | 20 | 1 |
102 | 21 | 2 |
1002 | 22 | 4 |
10002 | 23 | 8 |
1 00002 | 24 | 16 |
10 00002 | 25 | 32 |
100 00002 | 26 | 64 |
1000 00002 | 27 | 128 |
1 0000 00002 | 28 | 256 |
10 0000 00002 | 29 | 512 |
100 0000 00002 | 210 | 1024 |
1 0000 0000 0000 00002 | 216 | 65 536 |
1 0000 0000 0000 0000 0000 00002 | 224 | 16 777 216 |
1 0000 0000 0000 0000 0000 0000 0000 00002 | 232 | 4 294 967 296 |
С помощью этой таблицы можно практически «в уме» перевести числа из двоичной системы в десятичную».
Читайте также: Как сжать файл PDF (рабочие способы)
Как переводить десятичные числа в двоичные
Это задание похоже на математическую задачку, и его можно найти в олимпиаде для школьников.
Чтобы научиться ее решать, давайте еще раз посмотрим на первые натуральные числа в двоичной и десятичной системе счисления.
1 | 12 |
2 | 102 |
3 | 112 |
4 | 1002 |
5 | 1012 |
6 | 1102 |
7 | 1112 |
8 | 10002 |
9 | 10012 |
Рассмотрим следующую закономерность: все четные числа — 2, 4, 6 и 8 — в двоичной записи оканчиваются на 0. Все нечетные числа 1, 3, 5, 7 и 9 — на 1. Этому есть простое объяснение — в двоичной системе счисления это число 2 как 10 в десятичном виде. Если двоичное число делится на два, оно круглое. Математики говорят, что четные числа делятся на 2 без остатка (или с остатком 0), а нечетные — с остатком 1:
- при делении 4 на 2 в остатке 0;
- при делении 5 на 2 остаток равен 1;
- при делении 6 на 2 в остатке 0;
- при делении 9 на 2 в остатке 1.
Попробуем перевести десятичное число 26 в двоичную систему. Для этого воспользуемся делением на угол 2.
Если 26 разделить на 2, получится 13, остаток от деления 0. Продолжаем дальше:
- 13 делим на 2, получается 6, остаток от деления 1;
- 6 разделить на 2, результат 3, остаток от деления 0;
- 3 разделить на 2, результат 1, остаток от деления 1;
- 1 разделить на 2, результат 0, остаток от деления 1;
Из остатков 1, 1, 0, 1 и 0 добавляется нужная нам двоичная запись.
Шестнадцатеричная система счисления
Мы знаем, что компьютер использует числа для представления всех видов информации. Например, цвета хранятся в виде трех чисел — яркости красной, зеленой и синей составляющих цвета. Каждый компонент имеет восемь двоичных позиций, поэтому максимальная яркость компонента составляет 11111111₂ или 255. Весь цвет описывается большим 24-битным двоичным числом, например 11111010 10000000 01110010. Это лососевый цвет из таблицы цветов HTML, также известный как цвет лосося.
Верхние восемь позиций предназначены для красного компонента, средние восемь для зеленого и нижние восемь для синего. Мы видим, что такая запись очень громоздка и непрактична.
Кажется, удобнее записывать цвет в виде десятичного числа 16416882. Хотя это занимает меньше места, из него сложно сказать, какова яркость каждого компонента.
Для записи больших двоичных чисел программистам пришла в голову идея использовать шестнадцатеричную систему счисления:
- В десятичной системе десять цифр и шестнадцать в шестнадцатеричной
- В десятичной системе соседние позиции различаются в десять раз, а в шестнадцатеричной — в шестнадцать раз
Как и в двоичной системе, числа 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9 заимствованы из десятичной системы. Но в данном случае этих цифр недостаточно: нужно еще шесть. Обычно они обозначаются в шестнадцатеричной системе первыми буквами английского алфавита:
Шестнадцатеричная система счисления хороша тем, что группа из четырех двоичных цифр кодируется одной шестнадцатеричной цифрой. Итак, лососевый цвет выглядит так:
В шестнадцатеричной системе счисления это записывается так:
Поначалу сложно понять, каков порядок шестнадцатеричного числа FA. Как и в случае с двоичными числами, программисты обычно запоминают показатели степени круглых шестнадцатеричных чисел. А можно не вспоминать, а заглянуть в эту таблицу:
1016 | 16 |
2016 | 32 |
3016 | 48 |
4016 | 64 |
5016 | 80 |
6016 | 96 |
7016 | 112 |
8016 | 128 |
9016 | 144 |
А016 | 160 |
B016 | 176 |
C016 | 192 |
Д016 | 208 |
E016 | 224 |
F016 | 240 |
10016 | 256 |
100016 | 4096 |
1 000016 | 65 536 |
10 000016 | 1 048 576 |
100 000016 | 16 777 216 |
1000 000016 | 268 435 456 |
1 0000 000016 | 4 294 967 296 |
Для преобразования чисел из десятичных в шестнадцатеричные и наоборот в качестве промежуточного термина можно использовать двоичное представление. Часто это самый простой способ: двоичное и шестнадцатеричное представления просто переводятся друг в друга.
Восьмеричная система счисления
Восьмеричная система когда-то использовалась наряду с шестнадцатеричной. Из названия видно, что в нем используется всего восемь цифр: 0, 1, 2, 3, 4, 5, 6 и 7. Восьмеричная система подходит для представления шести-, девяти- и двенадцатизначных двоичных чисел.
Такие цифры редкость. Один из самых известных примеров использования восьмеричных чисел — разрешения в операционной системе UNIX. Они записываются в виде девятизначного двоичного числа, например 110100100 или 111101100. Запоминать и передавать такие числа неудобно, поэтому программисты предпочитают восьмеричную систему счисления, записывая права доступа в виде 644 или 754.
Популярные операционные системы Linux и MacOS берут свое начало в UNIX, поэтому и там разрешения задаются в восьмеричном формате.
Пользователи UNIX используют команду stat, чтобы узнать разрешения, и команду chmod, чтобы изменить их. На рисунке видно, что команды stat и chmod используют восьмеричные числа. Подробное описание этих команд выходит за рамки данной статьи. Вы можете узнать больше о разрешениях и о том, что означают эти числа, взглянув на командную строку Linux.
Подводя итог, можно сказать, что восьмеричные числа сейчас используются редко. В подавляющем большинстве случаев программисты используют шестнадцатеричную систему счисления.
Конвертация чисел в программах
Языки программирования могут работать с числами, записанными в разных системах счисления, и переводить их из одной системы в другую. Например, рассмотрим работу с разными системами счисления в Python и JavaScript.
Python
Чтобы записать двоичное число в Python, добавьте к нему префикс 0b. Десятичное число 26 можно записать как 0b11010. Шестнадцатеричные числа имеют префикс 0x, а восьмеричные числа имеют префикс 0o.
print(0b11010)# => 26print(0x1a)# => 26print(0o32)# => 26
Во всех случаях, чтобы написать число, мы сначала пишем цифру ноль «0», а затем букву, определяющую систему счисления. Буква «б» стоит первой в слове двоичный (двоичный), а буква «о» — в слове восьмеричный (восьмеричный). Из общего правила исключена буква «х» — это третья буква в слове шестнадцатеричный (шестнадцатеричный).
Функции bin(), hex() и oct() преобразуют число в двоичную, шестнадцатеричную и восьмеричную системы.
print(bin(26))# => ‘0b11010’print(hex(26))# => ‘0x1a’print(oct(26))# => ‘0o32′
Благодаря префиксной записи и функциям bin(), hex() и oct() мы можем преобразовывать числа из любой системы в любую.
print(hex(0o32))//>=’0x1a’
JavaScript
JavaScript использует те же префиксы для представления чисел, что и Python. 0b11010, 0x1a и 0o32 — двоичные, шестнадцатеричные и восьмеричные представления числа 26.
console.log(0b11010)// => 26console.log(0x1a)// => 26console.log(0o32)// => 26
Чтобы преобразовать числа в другую систему счисления, вы должны вызвать метод toString() и передать системе основание в качестве параметра.
Обычно в JavaScript мы можем вызывать метод объекта с точкой. Например, если мы сохранили число в переменной i, мы можем получить его шестнадцатеричное представление, вызвав метод i.toString(16). Но мы не можем вызвать метод для числа 2 — 2.toString(16) — потому что в JavaScript точка в записи чисел разделяет целую и дробную части. Если дробь равна нулю, ее можно опустить, поэтому «2» означает то же, что и «2.0».
Сервисы для перевода из системы в систему
Существует множество сервисов по переносу номеров из системы в систему. Даже Google может это сделать. Чтобы преобразовать двоичное число, например 11010, в десятичное, введите запрос 0b11010 decimal.
Чтобы преобразовать десятичное число, например 26, в двоичное, введите запрос 26 binary.
Обратите внимание, что Google использует префикс 0b, чтобы различать двоичные и десятичные числа.
Чтобы преобразовать десятичное число 137 в шестнадцатеричное, введите запрос 137 hex.
Чтобы преобразовать шестнадцатеричное число 2BAD в десятичное, введите десятичное число 0x2BAD.
Google использует префикс 0x, чтобы отличать шестнадцатеричные числа от всех остальных чисел. Чтобы преобразовать число 121 в восьмеричное, введите запрос 121 восьмеричное.
Чтобы перевести число обратно, введите десятичное число 0o171 в поле поиска.
Мы видим, что Google использует те же префиксы, что и в примерах Python и JavaScript, для представления чисел в двоичном, шестнадцатеричном и восьмеричном виде.