int 목록으로 저장된 숫자를 부동 소수점 유형으로 변환하려고합니다. 나는 시리얼 콘솔을 통해 그 번호를 얻었고 다시 그것을 플로트로 재구성하려고한다.정수 목록을 부동 소수점으로 변환
result = int_list[0]*256.0 + int_list[1]
그러나,이 부호가 유지되지 않습니다 내가 파이썬에서 사용하려고 무엇
bit_data = ((int16_t)byte_array[0] << 8) | byte_array[1];
result = (float)bit_data;
가 훨씬 더 간단 전환이다 : 나는 C에서 그것을 할 것 방법은 다음과 같이이다 그 결과는 C 코드와 같습니다. 파이썬에서이 작업을 수행하는 올바른 방법은 무엇입니까?
업데이트 : 파이썬 버전은 2.7.3입니다. 내 바이트 배열의 길이는 2입니다. 파이썬 코드의 입니다. byte_array는 int의 목록입니다. 오해를 피하기 위해 이름을 변경했습니다. float() 함수는 숫자의 부호를 유지하지 않기 때문에 사용할 수 없습니다.
당신의 byte_array이 얼마나 큰
-2.0
? 그것은 4 요소입니까? 귀하의 코드는 분명히하지 않습니다 ... –또한, 당신은 어떤 파이썬 버전을 언급하지 않았다 ... –
byte_array는 무엇입니까? int, bytes 객체의 목록입니까? – Dunes