당신은 어떻게 익스프레스 바이너리에서 리터럴 파이썬?
문제
당신은 어떻게 익스프레스 정수 이진 숫자로 파이썬 리터럴?
나는 쉽게 찾을 수 있 응답에 대한 육:
>>> 0x12AF
4783
>>> 0x100
256
고 octal:
>>> 01267
695
>>> 0100
64
당신은 어떻게 사용하여 리터럴 익스프레스 바이너리에서는 파이썬?
답변의 요약
- Python2.5 이상:할 수 있는 익스프레스 바이너리를 사용하여
int('01010101111',2)
하지만 문자적입니다. - Python2.5 이상:가 방법이 없 을 표현하는 바이너리 리터럴이 있습니다.
- Python2.6 베타:당신이 할 수 있다.
0b1100111
나0B1100111
. - Python2.6 베타:도
0o27
나0O27
(두 번째 문자가 알파벳 O)를 나타내는 octal. - Python3.0 베타:과 같 2.6 지만,더 이상 허용하지 않는 이전
027
에 대한 구문을 octals.
해결책
에 대한 참조미 Python 의 가능성:
을 시작으로 Python2.6 할 수 있는 익스프레스 바이너리 리터럴를 사용하는 접두사 0b 나 0B:
>>> 0b101111
47
또한 사용할 수 있는 새로운 통 함수는 이진 표현의 수:
>>> bin(173)
'0b10101101'
발전 버전의 설명서: What's New in Python2.6
다른 팁
>>> print int('01010101111',2)
687
>>> print int('11111111',2)
255
른 방법이 있습니다.
당신은 어떻게 익스프레스 바이너리에서 리터럴 파이썬?
그들은"바이너리"리터럴이지만,오히려,"정수 리터럴".표현할 수 있습니다 정수 리터럴 바이너리 형식 0
다음 B
나 b
의 영과 사람,예를 들어:
>>> 0b0010101010
170
>>> 0B010101
21
에서는 Python3 문서, 이러한 방식을 제공하는 정수에서 리터럴 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-style 진 리터럴에는 파이썬 사용하기 전에 version3.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
prefix:
>>> int('0b0010101010', 2)
170
는 경우에 당신은 그것을 전달할 0
기본으로,그것은 추측 기 10 는 경우 문자열을 지정하지 않으로 prefix:
>>> int('10101', 0)
10101
>>> int('0b10101', 0)
21
변환 int 다시 읽을 수 있는 인간의 바이너리:
당신이 전달할 수 있습니다 정수통을 참조하의 문자열 표현을 바이너리 리터럴:
>>> 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'
0 에서 여기서 시작을 지정하는 기준 8(10),이는 매우 쉽게 참조하십시오:
>>> int('010101', 0)
4161
지 않는 경우에 시작으로 0,python 정 번호는 기본 10.
>>> int('10101', 0)
10101
멀리로 말할 수 있는 파이썬,을 통해 2.5 만 지원하수&octal 리터럴이 있습니다.내가 찾았어요 몇 가지 논의 추가에 대해 이후 버전에만 아무것도 확실한 것입니다.
나는 확신이는 것 중의 하나 변경으로 인해서는 Python3.0 아마도 빈()가 진수()월().
편집:lbrandy 의 대답에서 올바른 경우도 있습니다.