プリミティブ: | bit-not | ||||||
---|---|---|---|---|---|---|---|
要約: | ビットの補数演算 | ||||||
構文: | {bit-not } | ||||||
引数: | |||||||
戻り値: | |||||||
説明: | 0 を 1 に、1 を 0 に変換します。つまりこの演算子は のビットを反転します。次に例を示します。 00000000 00000000 00000000 00001111 (バイナリ表記した整数 15) 11111111 11111111 11111111 11110000 (ビット補数であり、-16 に相当) | のビット補数を計算します。この演算子は のバイナリ表記を反転し、||||||
|
| ||||||
注: | - ビット演算子は、演算を行う前に引数を int に昇格します。また、引数の符号拡張を行います (引数が正の場合 0 が上位ビットに挿入され、負の場合は 1 が上位ビットに挿入されます)。 - Curl® 実行環境 では、バイナリ値を 2 の補数形式で処理します。 | ||||||
参照: | API リファレンスの |
プリミティブ: | bit-and | ||||||
---|---|---|---|---|---|---|---|
要約: | ビットの論理積 (AND) | ||||||
構文: | {bit-and } | ||||||
引数: | |||||||
戻り値: | 引数のビット論理積に相当する | ||||||
説明: | 引数のビット論理積を計算します。 この演算子は、各ビットに対するビット論理積演算を実行します。各引数の右端のビット (下位ビットと呼ばれる) のビット論理積を計算し、続いてその次のビットのビット論理積を順に計算していきます。 それぞれの位置で、すべてのビットが 1 の場合、ビット論理積演算は 1 を返します。それ以外の場合は 0 を返します。 例: 00000000 00000000 00000000 00110011 (バイナリ表記の整数 51) 00000000 00000000 00000000 01010101 (整数 85) 00000000 00000000 00000000 00010001 (これら 2 つの値のビット論理積であり、17 に相当) | ||||||
|
| ||||||
注 : | - ビット演算子は、演算を実行する前に引数を int に昇格します。また、引数の符号拡張を行います (引数が正の場合 0 が上位ビットに挿入され、負の場合は 1 が上位ビットに挿入されます)。 - bit-and に引数を与えない場合、この演算子は -1 (ビット論理積の恒等値) を返します。 - ランタイムでは、2 の補数形式でバイナリ値を処理します。 | ||||||
参照: | API リファレンス マニュアルの |
プリミティブ: | bit-or | ||||||
---|---|---|---|---|---|---|---|
要約: | ビットの論理和 (OR) | ||||||
構文: | {bit-or } | ||||||
引数: | - 式のカンマ区切りリスト。これらは OR で結合する項です。 | ||||||
戻り値: | 引数のビット論理和に相当する | ||||||
説明: | 引数のビット論理和を計算します。 この演算子は、各ビットのビット論理和演算を実行します。各引数の右端のビット (下位ビットと呼ばれる) のビット論理和を計算し、続いてその次のビットのビット論理和を順に計算していきます。 それぞれの位置で、いずれかのビットが 1 の場合、ビット論理和演算は 1 を返します。それ以外の場合は 0 を返します。 例: 00000000 00000000 00000000 00110011 (バイナリ表記の整数 51) 00000000 00000000 00000000 01010101 (整数 85) 00000000 00000000 00000000 01110111 (これら 2 つの値のビット論理和であり、119 に相当) | ||||||
|
| ||||||
注 : | - ビット演算子は、演算を実行する前に引数を int に昇格します。また、引数の符号拡張を行います (引数が正の場合 0 が上位ビットに挿入され、負の場合は 1 が上位ビットに挿入されます)。 - bit-or に引数を与えない場合、この演算子は 0 (ビット論理和の恒等値) を返します。 - ランタイムでは、2 の補数形式でバイナリ値を処理します。 | ||||||
参照: | API リファレンス マニュアルの |
プリミティブ: | bit-xor | ||||||
---|---|---|---|---|---|---|---|
要約: | ビットの排他的論理和 (XOR)。 | ||||||
構文: | {bit-xor } | ||||||
引数: | |||||||
戻り値: | 引数のビット排他的論理和に相当する | ||||||
説明: | 引数のビット排他的論理和を計算します。 この演算により、各ビットのビット排他的論理和が実行されます。各引数の右端のビット (下位ビットと呼ばれる) のビット排他的論理和を計算し、続いてその次のビットのビット排他的論理和を順に計算していきます。 それぞれの位置で、奇数のビットが 1 の場合、ビット XOR 演算は 1 を返します。それ以外の場合は 0 を返します。 例: 00000000 00000000 00000000 00110011 (バイナリ表示した整数 51) 00000000 00000000 00000000 01010101 (整数 85) 00000000 00000000 00000000 01100110 (これら 2 つの値のビット排他的論理和で、102 に相当) | ||||||
|
| ||||||
注 : | - ビット演算子は、演算を実行する前に引数を int に昇格します。また、引数に対して符号拡張を行います (引数が正の場合には上位ビットに 0 が挿入され、負の場合には 上位ビットに 1 が挿入されます)。 - bit-xor に引数を与えない場合、この演算は 0 (ビット排他的論理和の恒等値) を返します。 - ランタイムは、2 の補数形式でバイナリ値を処理します。 | ||||||
参照: | API リファレンス マニュアルの |
プリミティブ: | bit-sll | ||||||
---|---|---|---|---|---|---|---|
要約: | ビットの左シフト | ||||||
構文: | {bit-sll , } | ||||||
引数: | - 負でない整数。この引数は、 をシフトするビット位置の数です。この演算子は、昇格後に を使用して、 のビット数の module を取ります。 | - 整数に昇格できる式。この引数はシフトするビットを含む項です。||||||
戻り値: | 整数。 | ||||||
説明: | 0) が右からシフト挿入され、左にシフト アウトしたビットは捨てられます。 例: 00000000 00000000 00000000 00110011 (バイナリ表記の整数 51) 00000000 00000000 00000001 10011000 (51 を左に 3 ビットシフトさせた数で、408 に相当) | のバイナリ表記のビットを左へ の数だけシフトします。0 ビット (||||||
|
| ||||||
注 : | - ビット演算子は、演算を実行する前に引数を int に昇格します。また、引数の符号拡張を行います (引数が正の場合には上位ビットに 0 が挿入され、負の場合には 上位ビットに 1 が挿入されます)。 - 実行環境では、バイナリ値を 2 の補数形式で処理します。 - 正の数の場合、左シフトの各位置は実質的に数値を 2 で乗算したものに相当します。 | ||||||
参照: | API リファレンス マニュアルの |
プリミティブ: | bit-srl | ||||||
---|---|---|---|---|---|---|---|
要約: | ビットの右シフト | ||||||
構文: | {bit-srl , } | ||||||
引数: | - 負でない整数。この引数は、 をシフトするビット位置の数です。この演算子は、昇格後に を使用して、 のビット数の modulo を取ります。 | - ||||||
戻り値: | 整数。 | ||||||
説明: | 0) が左からシフト挿入され、右にシフト アウトしたビットは捨てられます。 例: 00000000 00000000 00000000 00110011 (バイナリ表記の整数 51) 00000000 00000000 00000000 00000110 (51 を右に 3 ビットシフトさせた数で、6 に相当) | のバイナリ表記のビットを右へ の数だけシフトします。0 ビット (||||||
|
| ||||||
注 : | - ビット演算子は、演算を実行する前に引数を int に昇格します。また、引数の符号拡張を行います (引数が正の場合には上位ビットに 0 が挿入され、負の場合には 上位ビットに 1 が挿入されます)。 - 実行環境では、バイナリ値を 2 の補数形式で処理します。 -正の数の場合、右シフトの各位置は実質的に数値を 2 で除算したものに相当します。 - 算術演算子を使用して右シフトを実行するには、ビット演算の代わりに bit-sra を使用します。 | ||||||
参照: | API リファレンス マニュアルの 開発者ガイドの bit-sra |
プリミティブ: | bit-sra | ||||||
---|---|---|---|---|---|---|---|
要約: | 四則演算の右シフト | ||||||
構文: | {bit-sra , } | ||||||
引数: | - 負でない整数。この引数は、 をシフトするビット位置の数です。この演算子は、昇格後に を使用して、 のビット数の modulo を取ります。 | - ||||||
戻り値: | 整数。 | ||||||
説明: | を だけ右にシフトさせます。 | ||||||
|
| ||||||
注 : | -このビット演算子は、演算を実行する前に引数を int に昇格します。また、引数の符号拡張を行います (引数が正の場合には上位ビットに 0 が挿入され、負の場合には 上位ビットに 1 が挿入されます)。 - ビット演算子を使用して右シフトを実行するには、四則演算の代わりに bit-srl を使用します。 - が符号無しの整数の場合、この操作は bit-srl と同様です。 | ||||||
参照: | API リファレンス マニュアルの 開発者ガイドの bit-srl |