[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

# 43. bitwise

パッケージ `bitwise`は整数定数のビット操作を可能にする関数を提供します。 通常通り、知られているかもしれない変数の属性を考慮してもし定数の実際の値が未知なら、 maximaは演算の結果を整理しようとします。 `declare`メカニズムを参照してください。

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 43.1 Functions and Variables for bitwise

関数: bit_not (int)

  符号付き整数のすべてのビットを反転させます。 この操作の結果は `-int - 1`です。

      (%i1) load("bitwise")$
      (%i2) bit_not(i);
      (%o2)                      bit_not(i)
      (%i3) bit_not(bit_not(i));
      (%o3)                           i
      (%i4) bit_not(3);
      (%o4)                          - 4
      (%i5) bit_not(100);
      (%o5)                         - 101
      (%i6) bit_not(-101);
      (%o6)                          100

  Categories: Number theory Binary operations Package bitwise

関数: bit_and (int1, ...)

  この関数は、2つ以上の符号付き整数のビット毎の `and`を計算します。

      (%i1) load("bitwise")$
      (%i2) bit_and(i,i);
      (%o2)                           i
      (%i3) bit_and(i,i,i);
      (%o3)                           i
      (%i4) bit_and(1,3);
      (%o4)                           1
      (%i5) bit_and(-7,7);
      (%o5)                           1

  もし `bit_and`のパラメータの1つが偶数かどうかわかっているなら、 関数はこの情報を考慮します。

      (%i1) load("bitwise")$
      (%i2) declare(e,even,o,odd);
      (%o2)                         done
      (%i3) bit_and(1,e);
      (%o3)                           0
      (%i4) bit_and(1,o);
      (%o4)                           1

  Categories: Number theory Binary operations Package bitwise

関数: bit_or (int1, ...)

  この関数は2つ以上の符号付き整数のビット毎の `or`を計算します。

      (%i1) load("bitwise")$
      (%i2) bit_or(i,i);
      (%o2)                           i
      (%i3) bit_or(i,i,i);
      (%o3)                           i
      (%i4) bit_or(1,3);
      (%o4)                           3
      (%i5) bit_or(-7,7);
      (%o5)                          - 1

  もし `bit_or`のパラメータの1つが偶数かどうかわかっているなら、 関数はこの情報を考慮します。

      (%i1) load("bitwise")$
      (%i2) declare(e,even,o,odd);
      (%o2)                         done
      (%i3) bit_or(1,e);
      (%o3)                         e + 1
      (%i4) bit_or(1,o);
      (%o4)                           o

  Categories: Number theory Binary operations Package bitwise

関数: bit_xor (int1, ...)

  この関数は2つ以上の符号付き整数のビット毎の `xor`を計算します。

      (%i1) load("bitwise")$
      (%i2) bit_xor(i,i);
      (%o2)                           0
      (%i3) bit_xor(i,i,i);
      (%o3)                           i
      (%i4) bit_xor(1,3);
      (%o4)                           2
      (%i5) bit_xor(-7,7);
      (%o5)                          - 2

  もし `bit_xor`のパラメータの1つが偶数かどうかわかっているなら、 関数はこの情報を考慮します。

      (%i1) load("bitwise")$
      (%i2) declare(e,even,o,odd);
      (%o2)                         done
      (%i3) bit_xor(1,e);
      (%o3)                         e + 1
      (%i4) bit_xor(1,o);
      (%o4)                         o - 1

  Categories: Number theory Binary operations Package bitwise

関数: bit_lsh (int, nBits)

  この関数は符号付き整数 `int`のすべてのビットを `nBits`だけ左へシフトさせます。 この操作で整数の幅は `nBits`だけ拡張されます。 なので、`bit_lsh`の結果は `int * 2`です(原文に従う)。

      (%i1) load("bitwise")$
      (%i2) bit_lsh(0,1);
      (%o2)                           0
      (%i3) bit_lsh(1,0);
      (%o3)                           1
      (%i4) bit_lsh(1,1);
      (%o4)                           2
      (%i5) bit_lsh(1,i);
      (%o5)                     bit_lsh(1, i)
      (%i6) bit_lsh(-3,1);
      (%o6)                          - 6
      (%i7) bit_lsh(-2,1);
      (%o7)                          - 4

  Categories: Number theory Binary operations Package bitwise

関数: bit_rsh (int, nBits)

  この関数は符号付き整数 `int`のすべてのビットを `nBits`だけ右へシフトさせます。 この操作で整数の幅は `nBits`だけ減らされます。

      (%i1) load("bitwise")$
      (%i2) bit_rsh(0,1);
      (%o2)                           0
      (%i3) bit_rsh(2,0);
      (%o3)                           2
      (%i4) bit_rsh(2,1);
      (%o4)                           1
      (%i5) bit_rsh(2,2);
      (%o5)                           0
      (%i6) bit_rsh(-3,1);
      (%o6)                          - 2
      (%i7) bit_rsh(-2,1);
      (%o7)                          - 1
      (%i8) bit_rsh(-2,2);
      (%o8)                          - 1

  Categories: Number theory Binary operations Package bitwise

関数: bit_length (int)

  変数が数 `int`を保持するために何ビット長必要か調べます。 この関数は正整数上のみに演算します。

      (%i1) load("bitwise")$
      (%i2) bit_length(0);
      (%o2)                           0
      (%i3) bit_length(1);
      (%o3)                           1
      (%i4) bit_length(7);
      (%o4)                           3
      (%i5) bit_length(8);
      (%o5)                           4

  Categories: Number theory Binary operations Package bitwise

関数: bit_onep (int, nBit)

  符号付き整数 `int`でビット `nBit`がセットされているかどうか調べます。

      (%i1) load("bitwise")$
      (%i2) bit_onep(85,0);
      (%o2)                         true
      (%i3) bit_onep(85,1);
      (%o3)                         false
      (%i4) bit_onep(85,2);
      (%o4)                         true
      (%i5) bit_onep(85,3);
      (%o5)                         false
      (%i6) bit_onep(85,100);
      (%o6)                         false
      (%i7) bit_onep(i,100);
      (%o7)                   bit_onep(i, 100)

  符号付き数では、符号ビットは2の補数相当です。 (原文: For signed numbers the sign bit is interpreted to be more than `nBit` to the left of the leftmost bit of `int` that reads `1`.)

      (%i1) load("bitwise")$
      (%i2) bit_onep(-2,0);
      (%o2)                         false
      (%i3) bit_onep(-2,1);
      (%o3)                         true
      (%i4) bit_onep(-2,2);
      (%o4)                         true
      (%i5) bit_onep(-2,3);
      (%o5)                         true
      (%i6) bit_onep(-2,4);
      (%o6)                         true

  もしテストする数が偶数かどうかわかっているなら、 関数はこの情報を考慮します。

      (%i1) load("bitwise")$
      (%i2) declare(e,even,o,odd);
      (%o2)                         done
      (%i3) bit_onep(e,0);
      (%o3)                         false
      (%i4) bit_onep(o,0);
      (%o4)                         true

  Categories: Number theory Binary operations Package bitwise

[ << ] | [ >> ] |  |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated by 市川雄二 on October, 5 2017 using texi2html 1.76.