core.bitop
このモジュールは様々なビット演算を提供します。 License:Boost License 1.0. Authors:
Don Clugston, Sean Kelly, Walter Bright Source:
core/bitop.d
- v の bit 0 から始めて、
最初に立っているbitを探します。
Returns:
最初に立っているビット番号。 vが0の場合の結果は未定義です。 - v の最上位ビットから始めて、
最初に立っている
bit を探します。
Returns:
最初に立っているビット番号。 vが0の場合の結果は未定義です。 Example:
import core.bitop; int main() { uint v; int x; v = 0x21; x = bsf(v); printf("bsf(x%x) = %d\n", v, x); x = bsr(v); printf("bsr(x%x) = %d\n", v, x); return 0; }
Output:
bsf(x21) = 0
bsr(x21) = 5 - ビット判定
- ビットを判定してから反転
- ビット判定してから、そのビットを0にする
- ビット判定してからそのビットを1にセット(Test and Set)
Parameters:
Returns:uint* p uint の配列を指す NULL でないポインタ index ビット番号で、p[0] の bit 0 から始まって増加していく番号です。 言い方を変えると、次のビットに対応します: p[index / (uint.sizeof*8)] & (1 << (index & ((uint.sizeof*8) - 1)))
ビットが立っていたら非0、 いなければ0を返します。 Example:
import core.bitop; int main() { uint array[2]; array[0] = 2; array[1] = 0x100; printf("btc(array, 35) = %d\n", <b>btc</b>(array, 35)); printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]); printf("btc(array, 35) = %d\n", <b>btc</b>(array, 35)); printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]); printf("bts(array, 35) = %d\n", <b>bts</b>(array, 35)); printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]); printf("btr(array, 35) = %d\n", <b>btr</b>(array, 35)); printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]); printf("bt(array, 1) = %d\n", <b>bt</b>(array, 1)); printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]); return 0; }
Output:
btc(array, 35) = 0 array = [0]:x2, [1]:x108 btc(array, 35) = -1 array = [0]:x2, [1]:x100 bts(array, 35) = 0 array = [0]:x2, [1]:x108 btr(array, 35) = -1 array = [0]:x2, [1]:x100 bt(array, 1) = -1 array = [0]:x2, [1]:x100
- 4バイトのuint型中の各バイトを、前と後ろで交換します。つまり byte0 は byte3 になり、byte1 は byte2 になり、 byte2 は byte1 になり、byte3 は byte0 になります。
- I/Oポート port_address を読みとります。
- I/Oポート port_address へ value を書き込みその値を返します。
- 32bit整数の立っているビットの個数を返します
- 32bit整数のビット順を逆転します
Copyright Don Clugston 2005 - 2009.
|
Page generated by Ddoc.