2017-02-26 5 views

답변

2

int(..,16)을 사용하여 0x... 형태의 16 진수 문자열을 구문 분석 할 수 있습니다.

>>> chr(int(x,16)) 
'2' 

그러나 \x32입니다 :이 결과

y = chr(int(x,16)) 

: 다음 당신은 단순히 유니 코드 문자로 그 숫자를 변환 chr(..)를 사용하여 코드 (그리고 경우에 코드가 128 미만 ASCII입니다) '2' 같음 (당신은 ASCII 테이블을 조회 할 수 있습니다) :

>>> chr(int(x,16)) == '\x32' 
True 

과 :

>>> len(chr(int(x,16))) 
1 
1

인용 부호가있는 문자열 안에 '\x32'과 같은 코드 포인트를 포함 할 수있는 기능은 소스 코드 내의 리터럴 값에서만 작동하는 프로그래머에게 편리합니다. 메모리에서 문자열을 조작하면 해당 옵션을 더 이상 사용할 수 없지만 코드 포인트 값에 따라 문자열에 문자를 가져 오는 다른 방법이 있습니다.

또한 '\x32''2'과 정확히 동일한 문자열을 나타냅니다. 다르게 입력 된 것입니다.

16 진수 리터럴을 포함하는 문자열이 주어지면 int(str,16)으로 숫자 값으로 변환 할 수 있습니다. 숫자 값이 있으면 chr()을 통해 해당 코드 포인트가있는 문자로 변환 할 수 있습니다. 그래서 모두 함께 넣어 :

x = '0x32' 
print(chr(int(x,16))) 
#=> 2