16ビットレジスタのMSBから値を取得する

ジョセフ

LSBMSBにいくつかの値を含む16ビットレジスタがあります

LSB:
ビット0 ... 1では値は0
ですビット2では値は0です

MBS:
MSBでは値20を書き込む必要があります

したがって、レジスタに書き込む必要のある値は0 + 0 + 20 = 160です。

私がレジスターを読んでいるとき、私はこの方法でそれをやっています:

ビット[0 ... 1]の最初の値の場合:

firstVal = (valFromReg & (((1 << 2)-1) << 1) / 2)  
secondVal = (valFromReg & 4) / 4

しかし、3番目の値を読み取って変換して数値20を取得するにはどうすればよいですか?

アンドレアス

Javaでは、ashortは(符号付き)16ビット値です。これを3つの値に分割します。

  • aはビット0〜1の2ビット値です
  • bはビット2の1ビット値です
  • cは、ビット3〜15の13ビット値です。

ビット単位では、次のように表すことができます。 cccc cccc cccc cbaa

16ビット値から3つの値を抽出するにはreg、次のようにします。

short reg = /*register value*/;
int a = reg & 0x0003;
int b = (reg >> 2) & 0x0001;
int c = (reg >> 3) & 0x1fff;

逆にするには、次のようにします。

short reg = (short)((c << 3) | (b << 2) | a);

もちろん、これは、値が値の範囲内、つまりa = 0-3、b = 0-1、およびc = 0-8191であることを前提としています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

16ビットレジスタから値を取得する

分類Dev

Modbusレジスタから64ビットデータを取得する方法

分類Dev

16個の16ビットレジスタ/変数をAVXレジスタにパックする方法

分類Dev

A000H以上の値を16ビットレジスタにMOVできないのはなぜですか?

分類Dev

レジスタからメモリに値を格納する際の問題、ARM32ビット

分類Dev

符号なしlong値を2つの16ビットレジスタに格納する

分類Dev

レジストリから日時の値を取得する

分類Dev

Perl:MSBと残りのビットを16進数から分離します

分類Dev

mipsの既存のレジスタ値から新しい32ビット値を作成します

分類Dev

カスタムリストビューからコンボボックスの値を取得する方法

分類Dev

C#のストアドプロシージャからビット値を取得する

分類Dev

8ビット値を使用している場合、16、32、または64ビットの代わりに8ビットレジスタを使用する利点はありますか?

分類Dev

すべての子から特定の値を取得するfirebaseリアルタイムストレージ

分類Dev

ポインタを使用してuint16_tの8ビットの個別アドレスを取得する

分類Dev

レジストリからREG_DWORDの変数の値を取得する方法

分類Dev

Laravelストレージからビデオを取得する

分類Dev

16進値からビットをマージします

分類Dev

左シフトで16ビットパターンを別のレジスタに転送する

分類Dev

Ionic2ストレージから複数のキー値を取得する

分類Dev

Ionic2ストレージから複数のキー値を取得する

分類Dev

アセンブラプログラミング-32ビットレジスタの内容を16ビットレジスタに移動しますか?

分類Dev

レジストリキー文字列から値を取得する

分類Dev

16ビットx86レジスタはどのようにデータを格納しますか?

分類Dev

レジストリ値のデータをバッチで取得する方法

分類Dev

Androidのカスタムリストビューからラジオボタンの値を取得するにはどうすればよいですか?

分類Dev

32ビットと64ビットの両方のマシンのWindowsマシンからレジストリ値を読み取る必要があります

分類Dev

リストビューのフッターボタン、カスタムリストアダプターから値を取得する方法

分類Dev

Googleスプレッドシートから値を取得する

分類Dev

16ビットレジスタを読み取るPythonminimalmodbus

Related 関連記事

  1. 1

    16ビットレジスタから値を取得する

  2. 2

    Modbusレジスタから64ビットデータを取得する方法

  3. 3

    16個の16ビットレジスタ/変数をAVXレジスタにパックする方法

  4. 4

    A000H以上の値を16ビットレジスタにMOVできないのはなぜですか?

  5. 5

    レジスタからメモリに値を格納する際の問題、ARM32ビット

  6. 6

    符号なしlong値を2つの16ビットレジスタに格納する

  7. 7

    レジストリから日時の値を取得する

  8. 8

    Perl:MSBと残りのビットを16進数から分離します

  9. 9

    mipsの既存のレジスタ値から新しい32ビット値を作成します

  10. 10

    カスタムリストビューからコンボボックスの値を取得する方法

  11. 11

    C#のストアドプロシージャからビット値を取得する

  12. 12

    8ビット値を使用している場合、16、32、または64ビットの代わりに8ビットレジスタを使用する利点はありますか?

  13. 13

    すべての子から特定の値を取得するfirebaseリアルタイムストレージ

  14. 14

    ポインタを使用してuint16_tの8ビットの個別アドレスを取得する

  15. 15

    レジストリからREG_DWORDの変数の値を取得する方法

  16. 16

    Laravelストレージからビデオを取得する

  17. 17

    16進値からビットをマージします

  18. 18

    左シフトで16ビットパターンを別のレジスタに転送する

  19. 19

    Ionic2ストレージから複数のキー値を取得する

  20. 20

    Ionic2ストレージから複数のキー値を取得する

  21. 21

    アセンブラプログラミング-32ビットレジスタの内容を16ビットレジスタに移動しますか?

  22. 22

    レジストリキー文字列から値を取得する

  23. 23

    16ビットx86レジスタはどのようにデータを格納しますか?

  24. 24

    レジストリ値のデータをバッチで取得する方法

  25. 25

    Androidのカスタムリストビューからラジオボタンの値を取得するにはどうすればよいですか?

  26. 26

    32ビットと64ビットの両方のマシンのWindowsマシンからレジストリ値を読み取る必要があります

  27. 27

    リストビューのフッターボタン、カスタムリストアダプターから値を取得する方法

  28. 28

    Googleスプレッドシートから値を取得する

  29. 29

    16ビットレジスタを読み取るPythonminimalmodbus

ホットタグ

アーカイブ