나는이 16 진수 문자열을 ,하지만 난으로 변환 할 필요가 실제 진수 . 예를 들어 다음과 같은 16 진수 문자열이 있습니다 .
3f4800003f480000
내 목표를 달성 할 수있는 한 가지 방법은 이스케이프 시퀀스를 사용하는 것입니다.
print("\x3f\x48\x00\x00\x3f\x48\x00\x00")
그러나 여러 변수에서 16 진수를 함께 만들고 싶기 때문에 이렇게 할 수 없습니다.
내 프로그램의 목적 은 다음과 같습니다.
100
100
:100 * 100 = 10000
2710
0000
2710
다시 추가0000
한 번 더내가 기대하는 결과 는 2710000027100000
입니다. 이제이 16 진수를 함수에 인수로 전달해야합니다 (16 진수).
Python에서는 'hex'와 같은 별도의 유형이 없습니다. 숫자의 16 진수 표기법을 str
. type
다음과 hex()
같이 전화 하여 자신을 확인할 수 있습니다 .
# v convert integer to hex
>>> type(hex(123))
<type 'str'>
그러나 값을 16 진수로 나타 내기 위해 Python 0x
은 16 진수 를 나타내는 문자열 앞에을 추가합니다 . 예를 들면 :
>>> hex(123)
'0x7b'
따라서 귀하의 경우 문자열을 16 진수로 표시하려면 다음과 같이 "0x"를 앞에 추가하면됩니다.
>>> my_hex = "0x" + "3f4800003f480000"
이런 식으로 나중에 다른 표기법으로 변환하려는 경우 정수 (문제 설명의 특성에 따라 확실히 필요함)라고 가정 해 보겠습니다. 할 일은 16 진법 을 다음 int
과 같이 호출하는 것입니다 .
>>> int("0x3f4800003f480000", base=16)
4559894623774310400
사실 파이썬의 인터프리터는 충분히 똑똑합니다. "0x"를 앞에 추가하지 않으면 처리됩니다. 예를 들면 :
>>> int("3f4800003f480000", base=16)
4559894623774310400
"0x"는 누군가가 당신의 코드를보고 / 디버깅하는 경우를 대비하여 16 진수 문자열을 나타내는 것입니다. 그것이 선호되는 이유입니다.
그래서 제 제안은 Python의 Hex 스타일을 고수하고 이스케이프 문자를 "\ x3f \ x48 \ x00 \ x00 \ x3f \ x48 \ x00 \ x00"으로 변환하지 않는 것입니다.
로부터 파이썬 hex
문서 :
정수를 "0x"로 시작하는 소문자 16 진수 문자열로 변환합니다. x가 Python int 객체가 아니면 정수를 반환하는 index () 메서드 를 정의 해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다