Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ and(3F) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

BIT(3F)  —  NEWS-OS Programmer’s Manual

名称

bit  −  論理積、 論理和、 排他的論理和、 否定、 右シフト、 左シフトのビット演算用関数

形式

(intrinsic) function and (word1, word2) (intrinsic) function or (word1, word2) (intrinsic) function xor (word1, word2) (intrinsic) function not (word) (intrinsic) function rshift (word, nbits) (intrinsic) function lshift (word, nbits)

解説

これらのビット関数はコンパイラ中に組み込まれており、 引数と同じデータ型を返します。 これらの引数は、 整数値 または 論理値 でなければなりません。

ビット演算関数は、 2つのオペランドのビットの“論理積”(and)、 “論理和”(or)、 または“排他的論理和”(xor)を返します。 not はそのオペランドのビットの補数を返します。

lshift は左方向の論理シフトを行うものです。 rshift は右方向の算術シフトを行うもので、符号が保存されます。 シフト回数は、 nbits の値のモジュロ 64 です。 すなわち、64 は 0、65 は 1、また、−1 は 63、−2 は 62 と同じになります。
これは、MC68020/MC68030 の ASL/ASR 命令の仕様によるものです。 負のシフト回数で逆方向のシフトを実行する VAX とは 異なることに注意してください。

これらの関数は、 次の関数定義文のようなさまざまな一般ルーチンを 作成するために使用することができます。 integer bitset, bitclr, getbit, word, bitnum bitset( word, bitnum ) = or(word,lshift(1,bitnum))
bitclr( word, bitnum ) = and(word,not(lshift(1,bitnum)))
getbit( word, bitnum ) = and(rshift(word,bitnum),1)

診断

これらの関数は CISC NEWS 用の Fortran にしかありません。

関連ファイル

これらの関数は、 f77 コンパイラによりインライン生成されます。

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026