このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
16進数値と2進数値
数値は16進数値または2進数値として表現できます。コンテキストによっては,これらの数値表現のほうが便利な場合があります。たとえば,2 進数値を使用してハードウェア レジスタのビットを表現できます。MATLAB® には 16 進数値と 2 進数値の表現方法が 2 つあります。
”“リテラルとして。R2019b以降,適切な接頭辞を表記に使用して16進数値と2進数値をリテラルとして記述できます。たとえば,
0 x2a
は42を指定するリテラルです。MATLABはこれをテキスト“ではなく”数値として保存します。字符串または文字ベクトルとして。たとえば,文字ベクトル
“2”
は数値42を16進数値で表しています。テキストを使用して16進数または2進数の値を表す場合は,引用符で囲みます。MATLABはこの表現を数値ではなくテキストとして格納します。
MATLABには,数値から16進数および2進数の表現への変換と,その逆の変換を行う関数がいくつか備わっています。
16進数と2進数の表記を使用した整数の記述
16進数リテラルは接頭辞0 x
または0 x
で始まり2進数リテラルは接頭辞0 b
または0 b
で始まります。MATLABでは、この表記法で記述された数値が整数として保存されます。たとえば、以下の 2 つのリテラルは、どちらも整数42
を表します。
一个= 0 x2a
一个=uint842
B = 0 b101010
B =uint842
この表記を使用して数値を記述する場合,引用符は使用しないでください。16進数の各桁を表すには,0
~9
、一个
~F
,および一个
~f
を使用します。2進数の各桁を表すには,0
と1
を使用します。
既定では,MATLABはその数値を収めることができる最小の符号なし整数型として格納します。しかし,オプションの接尾辞を使用して,値を格納する整数の型を指定することができます。
符号なし8、16、32、64ビットの整数型を指定するには,接尾辞
与
、u16
、u32
、U64.
を使用。符号付き8、16、32、64ビットの整数型を指定するには,接尾辞
s8
、s16
、s32
、s64
を使用。
たとえば,符号付き32ビット整数として格納される16進数リテラルを記述します。
一个= 0 x2as32
一个=int3242
符号付き整数型を指定する場合,負の数値を表すリテラルを記述できます。負の数値は2の補数の形式で表します。たとえば,負の数値を接尾辞s8
を使用したリテラルで指定します。
一个= 0 xffs8
一个=int8-1
MATLABではこうしたリテラルを数値として保存するため,これらは数値配列を使用する任意のコンテキストや関数で使用できます。
16進数値と2進数値をテキストとして表現
整数は,関数dec2hex
と関数dec2bin
を使用して,これを16進数値または2進数値として表す文字ベクトルにも変換できます。整数を16進数に変換します。
hexStr = dec2hex (255)
hexStr =“FF”
整数を2進数に変換します。
binStr = dec2bin (16)
binStr = ' 10000 '
これらの関数はテキストを生成するため,数値を表すテキストが必要な場合に使用します。たとえば,このような値をタイトルやプロット ラベルに追加したり、数値を 16 進数または 2 進数の表現として保存するファイルに書き込んだりできます。
16次数値の配列をテキストとして表现
数値の配列をテキストに変換するには,関数组成
を使用する方法が推奨されます。この関数は,入力数値配列と同じサイズの字符串配列を返します。16進数形式を生成するには,% X
を書式指定子に使用します。
A = [255 16 12 1024 137]
一个=1×5255 16 12 1024 137
hexStr =组成(“X %”,)
hexStr =1 x5字符串" ff " "10" " c " "400" "89"
関数dec2hex
と関数dec2bin
もまた,数値の配列を16進数値または2進数値として表すテキストにその配列を変換します。ただし,これらの関数は文字配列を返します。その各行は入力数値配列からの数値を表し,必要に応じてゼロでパディングされています。
2次数表现から16次数への変换
2進数値を16進数に変換するには,2進数リテラルで始めて,それを16進数値として表すテキストに変換します。リテラルは数値として解釈されるため,dec2hex
の入力引数として直接指定できます。
D = 0 b1111;hexStr = dec2hex (D)
hexStr = ' F '
16進数リテラルで始める場合は,dec2bin
を使用してその2進数値を表すテキストに変換できます。
D = 0 x8f;binStr = dec2bin (D)
binStr = ' 10001111 '
2進数値によるビット演算
2進数の一般的な使用法の1つは,ビットの表現です。たとえば,多くのデバイスには、メモリ内のデータやデバイスのステータスを表すビットの集合へのアクセスを提供するレジスタがあります。このようなハードウェアを操作する場合は、数値を MATLAB で使用してレジスタ内の値を表現することができます。特定のビットを表現し、それにアクセスするには、2 進数値とビット演算を使用します。
8ビットレジスタを表す数値を作成します。2進数表現で開始すると便利ですが,数値は整数として格納されます。
注册= 0 b10010110
注册=uint8150
特定のビットの値を取得または設定するには,ビット演算を使用します。たとえば,関数bitand
と関数bitshift
を使用して5番目のビットの値を取得します(このビットを先頭位置にシフトし,MATLABで0
または1
が返されるようにします。この例では5番目のビットは1
です)。
b5 = bitand(注册、0 b10000);b5 = bitshift (b5、4)
b5 =uint81
5番目のビットを0
に反転させるには,関数bitset
を使用します。
= bitset注册(注册5 0)
注册=uint8134
注册
は整数であるため,関数dec2bin
を使用してすべてのビットを2進数形式で表示します。binStr
は文字ベクトルであり,先頭に接頭辞0 b
をもたない2進数値を表します。
binStr = dec2bin(注册)
binStr = ' 10000110 '
参考
bin2dec
|bitand
|bitshift
|bitset
|dec2bin
|dec2hex
|hex2dec
|sprintf
|sscanf