NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

16進数を10進数に変換したい。

添付FIG1のA部にて16進数でAF010100FAを送信するとRS232C機器より16進数12ビットの受信データが帰ってきます。(添付Fig1

C部)

この12ビットデータの3ビット目と4ビット目を抜き取ると16進数の033Bが表示されます。(添付Fig1D部)

この抜き取った3ビット目と4ビット目 033Bを十進数に変換して10進数の827にしたいのですが、その方法をご教示頂けませんでしょうか。

また、インジケータの表示(添付Fig1D部)はHexディスプレイで表示されていますので16進数として表示されていますが、元のデータはアスキーで、アスキーを16進数で表示しているという解釈で宜しいでしょうか。

 

すべてをダウンロード
0 件の賞賛
メッセージ1/3
781件の閲覧回数

型変換(Type Cast)を使うのが簡単だと思います。

033Bは2バイトなので、タイプの指定にはI16またはU16をつなぐと良いです。

 

この場合、1文字=8ビット=1バイトです。ビットとバイトは明確に使い分けると(自身の頭の中も)混乱が防げます。

 

文字列表示器の表示は元のデータの表示の仕方を変えているだけです。

「元のデータ」はU8の配列と考えるとすっきりします。配列1要素が半角1文字を表します。

0 件の賞賛
メッセージ2/3
734件の閲覧回数

ご教示有難う御座います。

最近、初めてプログラミンに取り組む様になり、なかなかバイトの

イメージが掴めなかったのですが、だんだんわかってきました。

2バイトデータの表示ですが、ご助言の通り、U18に型変換しますと

無事に10進数表示になりました。

有難う御座いました。

 

0 件の賞賛
メッセージ3/3
715件の閲覧回数