# Logic

Logic 関数は、In-Sight スプレッドシートにブール代数および条件テストの機能を提供します。ビットごとの関数はすべて、2 進数で表現した引数の各ビット位置に対応する論理演算を実行し、結果として求められた 2 進値を 10 進数形式で返します。例えば、値 0 のビット 0 は値 1 のビット 0 と比較され、値 0 のビット 1 は値 1 のビット 1 と比較されます。

ヒント : 複数の真/偽条件の結果を GUI 表示やディスクリート出力に組み合わせる場合は、ビットごとの関数を、MultiStatus 関数とともに使用すると特に有効です。

演算子 | シンボル
--- | ---
NOT | !
AND | &&
OR | ||
等しい | ==
等しくない | <> (または !=)

すべての論理演算関数において、次が適用されます。

- FALSE = 0
- TRUE = ゼロ以外の結果

注 : Boolean 関数は、空のセルまたは空の文字列が含まれているセルを参照する引数を FALSE として処理します。空でない文字列 (文字列「0」を含む) を参照する引数は、TRUE として処理されます。

関数 | 説明
And(値1, 値2, ...) | すべての値がゼロ以外の場合は 1 を返します。(Logical AND どちらの値も TRUE である場合の結果は TRUE です)。 例: And(45, -77) は 1 を返します。 And(65534, 0) は 0 を返します。 And(-3, -2, -1, 1, 2, 3) は 1 を返します。 And(-1, 0, 1) は 0 を返します。
BitAnd(値1, 値2, ...) | 値のビットごとの AND を返します。 注 : 32 ビットの符号付き整数値を処理して返します。 例: BitAnd(45, 77) は 13 を返します。 45 = 0000 0000 0000 0000 0000 0000 0010 1101 (2 進数)、 77 = 0000 0000 0000 0000 0000 0000 0100 1101 (2 進数)。 And 演算子を使用して、これら 2 つの 16 ビット 2 進数の共通ビットを個別に比較した結果は 0000 0000 0000 0000 0000 0000 0000 1101 で、これを 10 進数で表すと 13 になります。
BitNot(値) | 値をビットごとに反転させた結果を返します。 注 : 32 ビットの符号付き整数値を処理して返します。 例: BitNot(45) は -46 を返します。 45 = 0000 0000 0000 0000 0000 0000 0010 1101 (2 進数)。 0 を 1、1 を 0 に反転した結果は 2 進数では 1111 1111 1111 1111 1111 1111 1101 0010 で、これを 10 進数で表すと -46 になります。
BitOr(値1, 値2, ...) | 値のビットごとの OR を返します。 注 : 32 ビットの符号付き整数値を処理して返します。 例: BitOr(45, 77) は 109 を返します。 45 = 0000 0000 0000 0000 0000 0000 0010 1101 (2 進数)、 77 = 0000 0000 0000 0000 0000 0000 0100 1101 (2 進数)。 Or 演算子を使用して、これら 2 つの 16 ビット 2 進数の共通ビットを個別に比較した結果は 0000 0000 0000 0000 0000 0000 0110 1101 で、これを 10 進数で表すと 109 になります。
BitXor(値1, 値2, ...) | 値のビットごとの XOR (排他的 OR) を返します。(排他的論理和 ビットのいずれか 1 つのみが TRUE の場合、結果は TRUE です。2 つ以上のビットが等しい場合、結果は FALSE です。) 注 : 32 ビットの符号付き整数値を処理して返します。 例: BitXor (45, 77) は 96 を返します。 45 = 0000 0000 0000 0000 0000 0000 0010 1101 (2 進数)、 77 = 0000 0000 0000 0000 0000 0000 0100 1101 (2 進数)。 次のように、45 と 77 で共通ビットではないのは 0110 0000 のみです。
45 | 77 | ビット単位の XOR | XOR ビット
0 | 0 | 2 個の 0 ≥ XOR FALSE | 0 (FALSE)
0 | 1 | 1 を 1 つのみ ≥ XOR TRUE | 1 (TRUE)
1 | 0 | 1 を 1 つのみ ≥ XOR TRUE | 1 (TRUE)
0 | 0 | 2 個の 0 ≥ XOR FALSE | 0 (FALSE)
1 | 1 | 2 個の 1 ≥ XOR FALSE | 0 (FALSE)
1 | 1 | 2 個の 1 ≥ XOR FALSE | 0 (FALSE)
0 | 0 | 2 個の 0 ≥ XOR FALSE | 0 (FALSE)
1 | 1 | 2 個の 0 ≥ XOR FALSE | 0 (FALSE)
0110 0000 = 96 (10 進数)
If(条件, 値1, 値2) | 条件がゼロ以外の場合は値1 を返し、条件がゼロの場合は値2 を返します。 注 : 条件または引数が空のセルを参照している場合、それらはゼロ (FALSE) と解釈されます。
InRange(値, 開始, 終了) | Min(開始,終了) ≤ 値 ≤ 最大(開始,終了) の場合、TRUE を返します。
InTolerance(実際の値, 予想された値, 許容範囲 %, マージン) | 実際の値が予想された値の相対的な許容範囲 % 内にあるかどうか、実際の値と予想された値の差がマージンを超えるかどうかを判定します。 計算された差のパーセンテージの値が 許容範囲 %またはマージン引数の値より大きい場合、関数は 0 を返します。それ以外の場合は 1 を返します。計算値では、指定された予想された値と実際の値が使用されます。
Not(値) | 値がゼロ以外の場合は 0 を返し、値がゼロの場合は 1 を返します。(論理的反転) 例: Not(-12345) は 0 を返します。 Not(3.14) は 0 を返します。 Not(2-1) は 0 を返します。 Not(1-1) は1 を返します。
OneShot(Value) | 最新の入力値が true (ゼロ以外) で、前の入力値が false (0) の場合、true (1) を返します。それ以外の場合、関数は false (0) を返します。 例: OneShot(A1) は boolean 関数を含む A1 セルを参照します。 初めて実行すると、A1 セルは 0 を返します。OneShot(A1) は 0 を返します。 2 回目に実行すると、A1 セルは 1 を返します。OneShot(A1) は 1 を返します。 OneShot(B2) はより広い範囲の値を返す関数を含む B2 セルを参照します。 初めて実行すると、B2 セルは 12 を返します。OneShot(B2) は 1 を返します。 2 回目に実行すると、B2 セルは 0 を返します。OneShot(B2) は 0 を返します。 注 : トリガ速度に応じて、OneShot 関数の結果のパルスが非常に高速になる場合があります。つまり、表示上の出力値が更新されていない可能性があります。
Or(値1, 値2, ...) | すべての値がゼロの場合は 0 を返し、ゼロ以外の値がある場合は 1 を返します。(論理和 値のいずれかが TRUE の場合、結果は TRUE です。) 例: Or(45, -77) は 1 を返します。 Or(-1, 0, 1) は 1 を返します。 Or(0, 1-1) は 0 を返します。