Mac Think Pascal で書かれた古いプログラムを Windows 上の Pascal に変換しています。Pascalには、次のようなビット操作用の関数があると思います
btst(n, i : longint) : boolean
bitxor(i, j : longint) : longint
bclr(n, i : longint) : longint
bset(n, i : longint) : longint
...その他。これらの関数が何をするか知っているなら、助けてください。
「従来の Macintosh Pascal コンパイラから GNU Pascal への移植」などの関連情報を見つけました。and
このドキュメントには、 、or
、shr
などのビット演算子を使用したビット関数の実装が含まれていますshl
。ただし、ドキュメントの説明が正しいかどうかはわかりません。
関数のおおよその意味を知っています:
btst(n,i)
n の i 番目のビットが 1 の場合は True、それ以外の場合は Falsebitxor(i,j)
ビット単位の「xor」ですbclr(n, i)
n の i 番目のビットを 0 に設定しますbset(n, i)
n の i 番目のビットを 1 に設定します
ただし、関数内の変数の正しい順序 (btst(n,i)
または などbtst(i,n)
) がわかりません。また、ビットはどのように番号付けされますか? 左から右へ、0 または 1 から開始しますか? これらの 4 つの機能についてご協力いただきありがとうございます。