2017-03-15 4 views
-1

길이가 긴 문자열입니다 (예 : '0x0000ffffffffffffff000000000ffffff').파이썬에서 긴 16 진수 문자열을 16 진수로 변환합니다.

같은 16 진수를 요구하기로 변환하는 방법 :

def hex_op(hex_number): 
    len_ = len(hex_number[2:]) 
    if len_ < 32: #checking if number has less than 32 digits 
     return "0x" + "0"*(32-len_) + hex_number[2:] 
    else: 
     return hex_number 

그리고 :

+0

시도한 코드와 생성 한 출력을 포함 할 수 있습니까? –

+0

[[파이썬에서 16 진수 문자열을 int로 변환]] 가능한 복제본 (http://stackoverflow.com/questions/209513/convert-hex-string-to-int-in-python) – James

답변

0
>>> eval('0x0000fffffffffffff000000000ffffff') 
5192296858534826475608991739150335 
>>> hex(eval('0x0000fffffffffffff000000000ffffff')) 
'0xfffffffffffff000000000ffffff' #unnecessary zeros is omitted here 

하지만 32 자리의 고정 길이의 번호를해야하는 경우, 여기에 솔루션입니다 0x0000fffffffffffff000000000ffffff 사용 예제 :

>>> hex_op('0xfffffffffffff000000000ffffff') # our number that we got from previous example 
'0x0000fffffffffffff000000000ffffff' 
관련 문제