どのように文字列の16進数の列から特定のビットを数に抽出するのですか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、達人、
Flagsという名前の文字列の16進数の列から特定のビットを抽出して数値に変換する方法について非常に簡単な質問があります。私の列の値は "0x1BA1"のようになります。ビット8と9の値を抽出し、それらを新しい列の3の値に変換します。jmpのバイナリ演算がわからないので、まず次のようにしてBを11に展開してみました
Char To Hex(Munger(:旗、4、1))
それは私に42の文字列を与えます。式に「整数」を入れようとしました
Char To Hex((Munger(:Flags、4、1))、"integer")
しかしそれはそれを認識しないでしょう。私はjmp11.2.1を使っています。
Bを抽出した後、下位2ビットを取得するためにmodule(module(value、8)、4)を使用します。
バイナリビットを抽出する簡単な方法があるなら、それはさらに良いでしょう。
ありがとうございました、
ジェーン
再:どのように文字列の16進数の列から特定のビットを数に抽出するのですか?MSさん、ありがとうございます。
私は連結 "0"を試みました、そして、それは働きます。
ジェーン
再:どのように文字列の16進数の列から特定のビットを数に抽出するのですか?こんにちは、
ありがとうございました。"B"の前のマジック "0"がキーです。
ジェーン
再:どのように文字列の16進数の列から特定のビットを数に抽出するのですか?Craige氏が指摘したように(ありがとう、私は知らなかった)、JMP 11には偶数個の16進文字が必要です。
単一文字の部分文字列に対して次の公式を試してください。
数への16進数 ( "0" || 部分文字列 ( フラグ 、 4 、 1 )) ;
再:どのように文字列の16進数の列から特定のビットを数に抽出するのですか?MSさん、こんにちは。
これらの "Hex to .."コマンドに問題があります。彼らは私の場合はうまくいきません。これが画面のコピーです。何が悪いのかわかりません。
ありがとうございました、
ジェーン

再:どのように文字列の16進数の列から特定のビットを数に抽出するのですか?JMP 12より前では、偶数個の16進文字が必要です。
16進数( "0B")
11
再:どのように文字列の16進数の列から特定のビットを数に抽出するのですか?16進数を(文字列として)10進数に変換する、Hex to Number()関数があります。
例:
ヘックス = "0x1BA1" ;
// 16進数から10進数
値 = 数への16進数 ( 部分文字列 ( ヘックス 、 4 、 1 )) ;
見せる ( 値 ) ;
// 10進数から2進数
ビン = 「」 ;
しながら ( 値 、
ビン = チャー ( モジュロ ( 数 ( 値 ) 、 2 )) || ビン ;
値 = 床 ( 値 / 2 ) ;
) ;
見せる ( ビン ) ;
//確認のために最後のステップを逆にする(または単に楽しみのために)
値2 = 和 ( 2 ^ ( Loc ( 逆 ( ことば ( ビン 、 「」 )) 、 「1」 ) - 1 )) ;
見せる ( 値2 ) ;