Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
894
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как вы выражаете двоичные литералы в Python?
Как выразить целое число в виде двоичного числа с Python литералами?
Я с легкостью нашел ответ на вопрос hex:
>>> 0x12AF
4783
>>> 0x100
256
и восьмеричный:
>>> 01267
695
>>> 0100
64
Как вы используете литералы для выражения двоичного кода в Python?
Резюме ответов
- Python 2.5 и ранее: может выражать двоичный код с помощью
int('01010101111',2), но не с помощью литерала. - Python 2.5 и ранее: нет никакого способа выразить двоичные литералы.
- Python 2.6 бета: вы можете сделать так:
0b1100111или0B1100111. - Python 2.6 beta: также позволит
0o27или0O27(второй символ-буква O) представлять восьмеричное число. - Python 3.0 beta: то же самое, что и 2.6, но больше не позволяет использовать старый синтаксис
027для окталов.
Для reference— будущих Python возможностей:
Начиная с Python 2.6 вы можете выражать двоичные литералы с помощью префикса 0b или 0B :
>>> 0b101111
47
Вы также можете использовать новую функцию bin для получения двоичного представления числа:
>>> bin(173)
'0b10101101'
Версия разработки документации: что нового в Python 2.6
Как вы выражаете двоичные литералы в Python?
Как вы выражаете двоичные литералы в Python?
Это не "binary" литералов, а скорее "integer literals". Вы можете выразить целочисленные литералы в двоичном формате с 0 , за которым следует B или b , а затем ряд нулей и единиц, например:
>>> 0b0010101010
170
>>> 0B010101
21
Из документов Python 3 это способы предоставления целочисленных литералов в Python:
Целочисленные литералы описываются следующими лексическими определениями:
integer ::= decinteger | bininteger | octinteger | hexinteger decinteger ::= nonzerodigit (["_"] digit)* | "0"+ (["_"] "0")* bininteger ::= "0" ("b" | "B") (["_"] bindigit)+ octinteger ::= "0" ("o" | "O") (["_"] octdigit)+ hexinteger ::= "0" ("x" | "X") (["_"] hexdigit)+ nonzerodigit ::= "1"..."9" digit ::= "0"..."9" bindigit ::= "0" | "1" octdigit ::= "0"..."7" hexdigit ::= digit | "a"..."f" | "A"..."F"Нет никаких ограничений на длину целых литералов, кроме того, что может храниться в доступной памяти.
Обратите внимание, что начальные нули в ненулевом десятичном числе не допускаются. Это для двусмысленности с C-стилевыми восьмеричными литералами, которые Python используется до версии 3.0.
Некоторые примеры целочисленных литералов:
7 2147483647 0o177 0b100110111 3 79228162514264337593543950336 0o377 0xdeadbeef 100_000_000_000 0b_1110_0101Изменено в версии 3.6: подчеркивания теперь разрешены для группирования в литералах.
Другие способы выражения двоичного кода:
Вы можете иметь нули и единицы в строковом объекте, которым можно манипулировать (хотя в большинстве случаев вам, вероятно, следует просто выполнять побитовые операции над целым числом) - просто передайте int строку нулей и единиц и базу, из которой вы преобразуете (2):
>>> int('010101', 2)
21
Вы можете дополнительно иметь префикс 0b или 0B :
>>> int('0b0010101010', 2)
170
Если вы передадите его 0 в качестве базы, он будет принимать базу 10, если строка не указывает с префиксом:
>>> int('10101', 0)
10101
>>> int('0b10101', 0)
21
Преобразование из int обратно в удобочитаемый двоичный файл:
Вы можете передать целое число в bin, чтобы увидеть строковое представление двоичного литерала:
>>> bin(21)
'0b10101'
И вы можете комбинировать bin и int , чтобы двигаться вперед и назад:
>>> bin(int('010101', 2))
'0b10101'
Вы также можете использовать спецификацию формата, если хотите иметь минимальную ширину с предшествующими нулями:
>>> format(int('010101', 2), '{fill}{width}b'.format(width=10, fill=0))
'0000010101'
>>> format(int('010101', 2), '010b')
'0000010101'