09-03-2022 07:31 PM
添付FIG1のA部にて16進数でAF010100FAを送信するとRS232C機器より16進数12ビットの受信データが帰ってきます。(添付Fig1
C部)
この12ビットデータの3ビット目と4ビット目を抜き取ると16進数の033Bが表示されます。(添付Fig1D部)
この抜き取った3ビット目と4ビット目 033Bを十進数に変換して10進数の827にしたいのですが、その方法をご教示頂けませんでしょうか。
また、インジケータの表示(添付Fig1D部)はHexディスプレイで表示されていますので16進数として表示されていますが、元のデータはアスキーで、アスキーを16進数で表示しているという解釈で宜しいでしょうか。
09-04-2022 09:43 PM - 編集済み 09-04-2022 09:52 PM
型変換(Type Cast)を使うのが簡単だと思います。
033Bは2バイトなので、タイプの指定にはI16またはU16をつなぐと良いです。
この場合、1文字=8ビット=1バイトです。ビットとバイトは明確に使い分けると(自身の頭の中も)混乱が防げます。
文字列表示器の表示は元のデータの表示の仕方を変えているだけです。
「元のデータ」はU8の配列と考えるとすっきりします。配列1要素が半角1文字を表します。
09-07-2022 07:21 AM
ご教示有難う御座います。
最近、初めてプログラミンに取り組む様になり、なかなかバイトの
イメージが掴めなかったのですが、だんだんわかってきました。
2バイトデータの表示ですが、ご助言の通り、U18に型変換しますと
無事に10進数表示になりました。
有難う御座いました。