0

接続されているシリアル デバイスのビット レートを調べようとしています。10Hz の速度でバイナリ データを送信するようにデバイスを構成しました。私の計画は、デバイスからの 1 つのメッセージを見て、ビット数を数え、10 を掛けて bps を取得することでした。

これは、1 つのメッセージのフラグメントを使用して、Python でビットをカウントする方法の例です。

>> message = "\0xdf\0xd0sA_\0xff0D\0x02\0xef0B"
>> 8 * sys.getsizeof(message)
512

そして最後に私の質問: 16 進数のプレフィックス "\0x" を数えるべきですか? メッセージをバイナリ表現に変換してから、メッセージの長さを確認する必要がありますか?

4

1 に答える 1

1

がバイト文字列の場合message、ビット単位の長さは です8 * len(message)

len入ったバイト数message(シリアルポート経由で送信されたもの) を返します。sys.getsizeofPython オブジェクトのサイズ ( strtype) を返します (メモリ内のサイズ):

>>> len(b'a')
1
>>> sys.getsizeof(b'a')
38
于 2014-03-12T01:46:55.203 に答える