2017-09-08 5 views
3

ushortをバイトに変換しようとしています。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' '''は**同一**です。彼らは同じことを書くのはちょうど2つの異なることです。同様に、 '0xA'、' 0o12'、または '10'と書くことができます。 – poke

答えて

2

それは\x27の代替表現があります:

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

ありがとう、@モーゼス。私は、シリアル通信用の書き込みデータを使用しようとすると問題を引き起こすと心配していました。 – Kucosyn

関連する問題