파일에서 16 진수 값을 읽고 일부 연산을 수행하려고합니다.파이썬 파일 16 진수 연산
REVA: XA0 DID0, DF= Q8B8, Rev: 0.0, UT: 0xd2d32103800600 : Cbos: 18 (0x0)
저는 UT를 읽고 다음 작업을 수행하려고합니다.
x=ut & 0xFFFFFFFF
y=(ut>>32) & 0xFFFFFF
내 코드 below-입니다
f=open('utinfo', 'rb')
for line in f:
if line.startswith("REVA"):
ut=line.split()[8] #grabs the value 0xd2d32103800600
x = ut & 0xFFFFFFFF
y = (ut>>32) & 0xFFFFFF
나는 그것이
x = ut & 0xFFFFFFFF
TypeError: unsupported operand type(s) for &: 'str' and 'long'
그래서 내가 문자열로 값을 읽고있다하지만 난 RB로 파일을 읽는 생각했다 - 이것도 얻을 오류 이 문제는 아직 발생하지 않았으므로 값을 문자열로 읽는 중입니다.
, BTW이
>>?ut=0x2d32103800600
>>? x=ut & 0xFFFFFFFF
>>?x
0x3800600L
>>? y= ut>>32 & 0xFFFFFF
>>?y
>>?0x0L
가 어떻게이 문제를 해결 할 파이썬에서 작동? 시간 내 주셔서 감사합니다 & 도움.
문자열을 long'long (float (ut))'으로 형변환 한 다음 bitwise 연산자 – karthikr