How to convert 2 to "10" in python
I need to convert the string «2» to the string «10» in binary, I’m using bitarray.
What appears for console is bitarray(‘00110010’) , I just want that only appears «10».
There is any way of doing this with Bitarray or I have to use another library?
2 Answers 2
I’m not familiar with the bitarray library, but it seems fromstring stores the ASCII bits of a string into the bit array.
format(int(‘2′),’b’) will do what you want. ‘b’ is the format code for binary, and will return ’10’ .
Перевод из одной системы счисления в другую Python
Сейчас мы реализуем перевод чисел из любой системы счисления в другую на питоне.
Перевод в СС через встроенные функции Python
Перевод из любой СС в 10 (например из 16-чной в 10-чную)
Перевод из 10 в 16-чную
Перевод из 10 в 8-чную
Перевод из 10 в 2-чную
Свои функции перевода в СС
Перевод из 10 в 2 — 9-чную.
Вместо цифр 7 можно поставить любое другое число от 2 до 9.
Перевод из 2 — 9-чной в 10-ую
Не получается программировать на C#, но хочется сделать игру на Unity?
Попробуй эту простую программу-конструктор, в которой можно создать любой скрипт на языке программирования C# специально для своих игр на Unity!
Обложка вида интерфейса программы CS Maker 2
C Sharp Maker 2 поможет создать из простых блоков готовый код на C#, который остаётся только вставить в игру))
Пример построения скрипта на языке программирования C# для игр на движке Unity
Мы — Wow Games,
команда, которая разрабатывает игры, а также приложения, помогающие Вам делать свои игры. Мы поможем, если у Вас возникли проблемы, и мы всегда рады новым участникам в нашей команде. Не бойтесь задавать вопросы, мы всегда на них ответим.
Всем привет!
Мы — Wow Games, команда, которая разрабатывает игры, а также приложения, помогающие Вам делать свои игры. Мы поможем, если у Вас возникли проблемы, и мы всегда рады новым участникам в нашей команде. Не бойтесь задавать вопросы, мы всегда на них ответим.
Convert a binary number(base 2) to the integer(base 10) in Python
Python has hundreds of utility functions that are built-in which ease our efforts to a great extent.
Today, the problem we have in hand “Conversion of a binary number to its integer form(base 10)“, python has some built-in methods for this as well.
In this article, we will go through different ways we can convert the binary representation to the decimal form. One method uses python’s built-in method, while the other is more traditional – more Algorithmic.
Approach 1: Using method int() + base argument
You must have seen int() when you wanted to typecast float or string to the integer format. However, we can also convert the string literal of the different base to the integer with the help of kwarg base .
- Syntax: int(x = binary_string,base = 2) .
- Parameters:x = binary string(can be hexadecimal, octal), base = the base of the string literal.
- Returns: Integer form of the binary string representation.
Example using int()
Approach 2: Using bitmasking and left shift operator
Before moving forward, it is necessary to understand how we convert the binary number to its decimal form.
Let’s take example of 99:
Binary Representation of 99: 1100011
Now, there is a multiple for each digit in binary representation. Starting from right towards the left(the lowest bit to the highest) we multiply the digits in binary representation with a power of two.
For the rightmost bit, the multiplier is 2^0
For the second position from the right, the multiplier is 2^1 .
For the third position from the right, the multiplier is 2^2 .
….
and so on…
Now that we have multipliers, we then multiply them with the respective digits they are assigned to. So,
The rightmost bit, 1 , gets multiplied to 2^0 . Product = 1 x 2^0 .
The second bit from the right, 1 , gets multiplied to 2^1. Product = 1 x 2^1 .
The third bit from the right, 0 gets multiplied to 2^2 . Product = 0 x 2^2 .
…
and so on…
At last, the summation of all the products gives us the decimal form of the binary representation.
Refer the below diagram for better understanding:

Convert binary to decimal form
In python, we can get the multipliers(increasing powers of two) using the left shift operator. Here’s how:
Now we have everything we need. We just need to iterate the binary string and get the product and then finally the sum of all the products.
Перевод чисел из одной системы счисления в другую
Описание функций для перевода целых чисел в Python из одной системы счисления в другую можно посмотреть в нашем учебнике здесь. В статье же рассматривается общая математическая теория для более глубокого понимания вопроса и расширения кругозора.
Калькулятор перевода чисел между СС
Инструкция калькулятора
Калькулятор (конвертер) служит для перевода неотрицательных целых и дробных действительных чисел длиной не более 200 символов из одной системы счисления в другую.
Поддерживаются системы счисления с основаниями от 2 до 36 .
При переводе дробных чисел из одной системы счисления в другую может теряться точность. В таких случаях калькулятор конвертирует число, отображая в результате только 100 знаков после запятой.
Перевод целых чисел
Перевести целое число 2547 из 10 -й системы счисления в 16 -ю.
Заполняем поля:
Исходная СС — 10
Переводим число — 2547
В систему счисления — 16
Жмем кнопку «Перевести» , получаем результат: 9F3 .
Чтобы скопировать результат в буфер обмена, жмем кнопку «Копировать» .
Перевод дробных чисел
Перевести дробное число 25.753 из 8 -й системы счисления в 16 -ю.
Заполняем поля:
Исходная СС — 8
Переводим число — 25.753
В систему счисления — 16
Жмем кнопку «Перевести» , получаем результат: 15.F58 .
Чтобы скопировать результат в буфер обмена, жмем кнопку «Копировать» .
Вступление к теории
В повседневной жизни мы привыкли иметь дело с десятичной системой счисления, в которой числа образуются при помощи цифр 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 . Однако современные компьютеры на аппаратном уровне работают только с цифровыми данными представленными в двоичной системе счисления, в которой числа образуются при помощи двух цифр 0 и 1 . Это связано с тем, что компьютеры для обработки информации используют устройства, которые могут принимать только два различных устойчивых состояния, например, заряжен или не заряжен, намагничен или не намагничен, есть ток или нет тока и т.д. Одно из состояний устройства принимается за ноль, а другое – за единицу. После объединения множества таких простейших устройств в одно сложное, например, процессор, как раз и появляется возможность обрабатывать данные в виде чисел в двоичной системе счисления. Но поскольку двоичные числа очень длинные, то для более короткой и удобной их записи при составлении программ на языке машинных кодов используются промежуточные восьмеричная и шестнадцатеричная системы счисления, числа в которых образуются, соответственно, при помощи цифр 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 и 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , A , B , C , D , E , F . Все это приводит к тому, что в ходе написания программ время от времени появляется необходимость перевода чисел из одной системы счисления в другую. Рассмотрением данного вопроса мы как раз и займемся в данной статье.
Перевод целых чисел и правильных дробей из десятичной системы
счисления в систему счисления с основанием «n»
Сразу же отметим, что перевод целых чисел и правильных дробей производится по разным правилам. Поэтому для вещественного числа, которое имеет целую и дробную части, для перевода целой части применяется правило перевода целых чисел, а для перевода дробной части – правило перевода правильных дробей. Рассмотрим все случаи по отдельности.
1. Для перевода целых чисел из десятичной системы счисления в систему счисления с основанием «n» используется следующий алгоритм.
- Исходное десятичное число a делится нацело на основание n , в результате чего получается частное c_1 и остаток от деления r_1 , который фиксируется.
- Далее, частное c_1 вновь делится на основание n , остаток r_2 фиксируется, а вся процедура повторяется заново до тех пор, пока частное не станет равным нулю (частное, а не остаток!).
- В самом конце из полученных остатков, записанных в порядке, обратном их получению, составляется требуемое число в новой системе счисления с основанием «n» .
В качестве примера рассмотрим перевод числа 35 из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную:
2. Для перевода правильных дробей из десятичной системы счисления в систему счисления с основанием «n» алгоритм имеет другой вид.
- Исходное десятичное число a , модуль которого меньше единицы ( |a| ), умножается на основание n , после чего целая часть результата произведения фиксируется.
- Далее, дробная часть результата вновь умножается на основание n , целая часть нового результата фиксируется, а вся процедура повторяется заново до тех пор, пока дробная часть очередного результата не станет равной нулю либо не будет достигнута требуемая точность числа в новой системе счисления с основанием n .
- В самом конце составляется требуемое число в новой системе счисления. Для этого записывается нулевая целая часть числа, а затем из зафиксированных ранее целых частей, при чем в той последовательности, в которой они были получены, составляется его дробная часть.
Отметим, что целые числа могут быть точно переведены из одной системы счисления в другую, чего не скажешь о дробных числах, которые в общем случае не могут быть переведены без потери точности. Поэтому очень важно при переводе дробных чисел уметь правильно определять в конечном числе количество разрядов после запятой, которые обеспечат нам требуемую точность. Добиться этого можно исходя из того, что число будет иметь одинаковую точность в различных системах счисления, если веса младших разрядов числа в этих системах будут одинаковы.
Вес P младшего разряда числа в текущей системе счисления, т.е. точность, которую обеспечивает данный разряд, определяется по формуле P = 1/(n k ) , где n — основание системы счисления, k — количество разрядов после запятой. Следовательно, для двух систем счисления равенство весов будет иметь вид: 1/(n_1 k_1 ) = 1/(n_2 k_2 ) , откуда требуемое минимальное количество разрядов числа после перевода будет равно k_2 = k_1/(logn_1n_2) . Например, вес младшего разряда числа 0.6 в десятичной системе счисления будет равен 1/(10 1 ) = 0.1 . Поэтому в случае перевода его, например, в двоичную систему счисления с точностью до сотых в исходной системе, количество разрядов конечного числа должно быть не менее 7 , т.к. 2/(log102) ≈ 2/0.3 ≈ 6.6 . Таким образом при обратном переводе мы получим исходное число с точностью до одной сотой.
Заметим, что если при переводе числа из десятичной в требуемую систему счисления, получается бесконечная дробь (периодическая или непериодическая), то в общем случае нам придется мириться с потерей точности числа, отсекая лишние разряды. Следовательно, целевое число будем меньше исходного.
Рассмотрим в качестве примера перевод числа 0.3 из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную.
3. В общем случае для перевода вещественных чисел из десятичной системы счисления в систему счисления с основанием «n» следует отдельно перевести его целую и дробную части, а затем дописать дробную часть к целой. Например, для числа 35.310 получим:
4. Из всего выше сказанного следует, что перевод числа из системы счисления с основанием «n» в систему счисления с основанием «m» можно осуществить в два этапа:
- в начале переводим число в десятичную систему счисления;
- а затем в нужную нам систему счисления с основанием «m» .
При этом не нужно забывать, что в общем случае при переводе дробных чисел из одной системы счисления в другую теряется точность.
Перевод чисел из системы счисления с основанием «n»
в десятичную систему счисления
Начнем с того, что в общем случае число c в позиционной системе счисления может быть разложено по степеням своего основания «n» и представлено в виде полинома в десятичной системе счисления:
c = ma-1*n a-1 + ma-2*n a-2 + . + m1*n 1 + m0*n 0 + m-1*n -1 + . + m-b*n -b , где
n – основание исходной системы счисления;
a – количество разрядов целой части в исходном числе;
b – количество разрядов дробной части в исходном числе;
mi – значение цифры в i -ом разряде исходного числа, где i изменяется от a-1 до -b .
Таким образом, для перевода числа из системы счисления с основанием «n» в десятичную систему счисления нужно представить его в виде данного полинома, а затем вычислить получившуюся сумму.
В качестве примеров переведем числа наших примеров обратно в десятичную систему счисления.
Как видим, в результате обратных преобразований мы получили исходное число с точностью до одной сотой (как мы и планировали первоначально), что связано с появлением возможной погрешности в ходе преобразований дробных чисел из одной системы счисления в другую. Поэтому, в случае возникновения такой необходимости при расчетах, для повышения точности преобразований нужно брать не минимально возможное число разрядов, а несколько большее, в зависимости от необходимой точности.
Перевод чисел из системы счисления с основанием 2 n
в систему счисления с основанием 2 m и обратно
Точнее говоря, мы подробно рассмотрим только переводы между двоичной, восьмеричной и шестнадцатеричной системами счисления, т.к. они широко применяются в программировании.
1. В общем случае перевод чисел из двоичной системы счисления в систему счисления с основанием 2 n довольно прост и осуществляется по следующему общему алгоритму:
- разряды исходного двоичного числа группируются по n разрядов влево и вправо от точки, разделяющей целую и дробную части;
- далее, неполные группы двоичных цифр по краям исходного числа дополняются незначащими нулями;
- после чего каждую из полученных групп двоичных цифр заменяют соответствующей ей цифрой системы счисления с основанием 2 n .
Отметим, что для восьмеричной системы счисления разряды разбиваются на тройки, которые называют , а для шестнадцатеричной – на четверки, которые называют . Триады и тетрады вместе с соответствующими им цифрами в восьмеричной и шестнадцатеричной системах счисления представлены в следующей таблице:
| Триада | Число N8 | Тетрада | Число N16 |
|---|---|---|---|
| 000 | 0 | 0000 | 0 |
| 001 | 1 | 0001 | 1 |
| 010 | 2 | 0010 | 2 |
| 011 | 3 | 0011 | 3 |
| 100 | 4 | 0100 | 4 |
| 101 | 5 | 0101 | 5 |
| 110 | 6 | 0110 | 6 |
| 111 | 7 | 0111 | 7 |
| – | – | 1000 | 8 |
| – | – | 1001 | 9 |
| – | – | 1010 | A |
| – | – | 1011 | B |
| – | – | 1100 | C |
| – | – | 1101 | D |
| – | – | 1110 | E |
| – | – | 1111 | F |
Для наглядности рассмотрим пример перевода числа 10110010011.11010101100011 в восьмеричную и шестнадцатеричную системы счисления, используя указанный алгоритм и таблицу триад и тетрад:
2. Для перевода чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную нужно:
- заменить каждую цифру числа соответствующей двоичной триадой или тетрадой (воспользовавшись таблицей выше);
- и далее, опустить незначащие нули в старших разрядах целой части и младших разрядах дробной части.
В качестве примера осуществим обратный перевод чисел предыдущего примера в двоичную систему:
В конце добавим, что перевод чисел из восьмеричной системы счисления в шестнадцатеричную или обратно, можно осуществить в два этапа:
- в начале переводим число в двоичную систему счисления;
- а затем в нужную нам восьмеричную или шестнадцатеричную систему счисления.
Задачи на закрепление теории
1. Переведите число 1937 из 10 -й системы счисления в двоичную. Показать решение.