2017-09-08 3 views
3

바이트로 변환하려고합니다.Python 3.4 : ushort를 바이트로 변환

>>import struct 
>>val =struct.pack('<H',10000) 
b"\x10'" 

대신 : :이 때 그러나

b'\x10\x27' 

이 버그인가요? 아니면 그냥 어리석은 짓을하는거야?

이 데이터를 직렬 장치에 쓰겠습니다.

미리 감사드립니다.

+1

'B "\ X10 '"'와'B':

>>> hex(ord("'")) '0x27' 

당신은 INT 표현으로 다시 변환 문제가되지 않습니다 \ x10 \ x27 \\ '는 같은 것입니다. 'b '\ x27'== b " '"'. 'print (b '\ x10 \ x27')'을 시도하면'b "\ x10 '"'이 출력됩니다. –

+0

후속 조치로 직렬 통신용으로 쓸 때 부정적인 영향을 미치지 않겠습니까? 이전에 마이크로 컨트롤러가 "50"과 같은 값을 보내면 마이크로 컨트롤러가 응답을 멈추는 문제가있었습니다. 다시 한 번 감사드립니다. @Rawring – Kucosyn

+0

* 같은 것이므로 부정적인 영향은 없습니다 *. 'b '\ x27''과'b' '''는 ** 동일 **합니다. 그들은 똑같은 것을 쓰는 단지 두 가지 다른 것들입니다. '0xA','0o12' 또는'10'을 쓰면 같은 번호를 참조 할 수 있습니다. – poke

답변

2

\x27에 대한 다른 표현입니다 :

>>> int.from_bytes(b"\x10'", 'little') 
10000 
+0

고마워, @ 모세. 직렬 통신을 위해 쓰기 데이터를 사용하려고 할 때 문제가 발생할 것이라고 걱정했습니다. – Kucosyn