문제

당신은 어떻게 익스프레스 정수 이진 숫자로 파이썬 리터럴?

나는 쉽게 찾을 수 있 응답에 대한 육:

>>> 0x12AF
4783
>>> 0x100
256

고 octal:

>>> 01267
695
>>> 0100
64

당신은 어떻게 사용하여 리터럴 익스프레스 바이너리에서는 파이썬?


답변의 요약

  • Python2.5 이상:할 수 있는 익스프레스 바이너리를 사용하여 int('01010101111',2) 하지만 문자적입니다.
  • Python2.5 이상:가 방법이 없 을 표현하는 바이너리 리터럴이 있습니다.
  • Python2.6 베타:당신이 할 수 있다. 0b11001110B1100111.
  • Python2.6 베타:도 0o270O27 (두 번째 문자가 알파벳 O)를 나타내는 octal.
  • Python3.0 베타:과 같 2.6 지만,더 이상 허용하지 않는 이전 027 에 대한 구문을 octals.
도움이 되었습니까?

해결책

에 대한 참조 Python 의 가능성:
을 시작으로 Python2.6 할 수 있는 익스프레스 바이너리 리터럴를 사용하는 접두사 0b0B:

>>> 0b101111
47

또한 사용할 수 있는 새로운 함수는 이진 표현의 수:

>>> bin(173)
'0b10101101'

발전 버전의 설명서: What's New in Python2.6

다른 팁

>>> print int('01010101111',2)
687
>>> print int('11111111',2)
255

른 방법이 있습니다.

당신은 어떻게 익스프레스 바이너리에서 리터럴 파이썬?

그들은"바이너리"리터럴이지만,오히려,"정수 리터럴".표현할 수 있습니다 정수 리터럴 바이너리 형식 0 다음 Bb 의 영과 사람,예를 들어:

>>> 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

선택할 수도 있습니다 0b0B prefix:

>>> int('0b0010101010', 2)
170

는 경우에 당신은 그것을 전달할 0 기본으로,그것은 추측 기 10 는 경우 문자열을 지정하지 않으로 prefix:

>>> int('10101', 0)
10101
>>> int('0b10101', 0)
21

변환 int 다시 읽을 수 있는 인간의 바이너리:

당신이 전달할 수 있습니다 정수통을 참조하의 문자열 표현을 바이너리 리터럴:

>>> bin(21)
'0b10101'

와 결합할 수 있습니다 binint 를 앞뒤로 이동:

>>> 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 의 대답에서 올바른 경우도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top