ナビゲーション:前へ 上へ 次へ
11.3 追加されたビット操作を行う組込関数
-
要素別組込関数 BGE, BGT, BLE, BLT
はビット毎の(つまり符号無しの)比較を行います。
またこれらの関数は2つの整数型(異なる種別であっても良い)の引数I、
Jを持ち、基本論理型を返します。
例えばBGE(INT(Z'FF',INT8),128)は真となり、 INT(Z'FF',INT8)>=128は偽となります。
- 配列集計組込関数IALL,IANY,IPARITYはビットワイズの演算で配列を集計します。 これらはSUM及びPRODUCTと似た動作をし、 SUM及びPRODUCTがそれぞれ+もしくは*演算により集計を行うのに対して IALL,IANY,IPARITYはそれぞれIAND,IOR,IEORにより集計を行います。 つまりそれぞれの要素がビットワイズの論理積、論理和、排他的論理和により集計されます。 IANYとIPARITYで集計対象要素が一つもない場合の結果はゼロとなります。 またIALLではNOT(zero)となります。
- 要素別組込関数LEADZとTRAILZは整数型(どの種別でも良い)の引数Iの左側の0のビット数、及び右側の0のビット数を返します。 結果は基本整数型です。
- 要素別組込関数MASKLとMASKRは左寄せもしくは右寄せされたビットマスクを生成します。 MASKL(I,KIND)の値は指定された種別の整数で、左側Iビットが1に設定され、残りのビットは0に設定されます。Iは負ではない値で且つ結果のビットサイズ以下でなければなりません。 KINDが省略された場合、結果は基本整数型となります。 MASKRもほぼ同様ですが右側のIビットが1に指定されます。
- 配列集計組込関数PARITYは論理配列を集計します。 この関数はALL及びANYと同じような振る舞いをしますが.AND.もしくは.OR.演算を行う代わりに.NEQV.演算で集計を行います。 つまり集計要素の.TRUE.の数が奇数であった場合その結果は.TRUE.となります。
- 要素別組込関数 POPCNT(I) は整数引数Iで1に設定されているビット数を返します。 要素別組込関数 POPPAR(I) はIで1に設定されたビットの数が奇数の場合1をそうでない場合は0を返します。 結果は基本整数型です。
