BITLIB : ビットパターンの処理

概要

ビットパターンの処理をおこなう関数・サブルーチンパッケージ. 1語長が32bitのシステムを念頭においている.

ビットパターンを与える/返す引数は1語長であれば,整数型である必要はない.

なおこのパッケージは(BITPIC, BITPCIを除いて), NCARのグラフィックパッケージに付随していた 基本関数・サブルーチン群にもとづいている.

サブルーチンのリスト

                                                              
  BITPIC(IP,CP)               ビットパターンを文字列化する.  
                                                              
  BITPCI(CP,IP)               文字列をビットパターン化する.  
                                                              
  GBYTE(NP,IO,IB,NB)          ビットパターンを切り出す.      
                                                              
  GBYTES(NP,NO,IB,NB,NS,IT)   ビットパターンを切り出す.      
                                                              
  SBYTE(NP,IO,IB,NB)          ビットパターンを埋め込む.      
                                                              
  SBYTES(NP,NO,IB,NB,NS,IT)   ビットパターンを埋め込む.      
                                                              

関数のリスト

                                               
  ISHIFT(IW,N)   ビットパターンをシフトする.  
                                               
  IAND(I1,I2)    ビット積を求める.            
                                               
  IOR(I1,I2)     ビット和を求める.            
                                               

IAND, IORは実時間FORTRANに規定されており, 処理系が用意している場合がある.

サブルーチンの説明

BITPIC

  1. 機能
    ビットパターンを'0', '1'の文字列として返す.
  2. 呼び出し方法
    CALL BITPIC(IP,CP)
  3. パラメーターの説明
                                                                            
      IP   (I)       ビットパターンを調べる1語長の引数.                    
                                                                            
      CP   (C*(*))   ビットパターンを返す文字型の引数.                     
                     ビットがONなら'1', OFFなら'0'を返す.                  
                                                                            
    
  4. 備考
    1. CPの長さがN (=LEN(CP))ならば IPの下位MIN(N,NB)ビット( NBは内部変数 'NBITSPW'で決まる数)を調べそのパターンを右詰めして返す. NがNBより大きいときCP(1:N-NB)は不定である.

BITPCI

  1. 機能
    '0', '1'の文字列をビットパターンとして返す.
  2. 呼び出し方法
    CALL BITPCI(CP,IP)
  3. パラメーターの説明
                                                                            
      CP   (C*(*))   ビットパターンを与える文字型の引数.                   
                     ビットがONなら'1', OFFなら'0'を指定する.              
                                                                            
      IP   (I)       ビットパターンを返す1語長の引数.                      
                                                                            
    
  4. 備考
    1. CPの長さがN (=LEN(CP))ならば CPの下位MIN(N,NB)文字( NBは内部変数 'NBITSPW'で決まる数)を調べそのパターンを右詰めして返す. NがNBより大きいとき,下位NB文字(CP(N-NB+1:N))のパターンを調べる. ビットパターンの指定方法について,正確には '0'ならビットがOFF, '0'以外ならビットがONと見なす.

GBYTE/GBYTES

  1. 機能
    連続した記憶領域からビットパターンを切り出す.
  2. 呼び出し方法
    CALL GBYTE(NP,IO,IB,NB)
    CALL GBYTES(NP,NO,IB,NB,NS,IT)
  3. パラメーターの説明
                                                                   
      NP   (I)   連続した記憶領域(たとえば配列)の先頭となる語.  
                                                                   
      IO   (I)   切り出したビットパターンを返す変数.              
                                                                   
      NO   (I)   切り出したビットパターンを返す配列.              
                                                                   
      IB   (I)   先頭の語においてスキップするビット数.            
                                                                   
      NB   (I)   切り出すビット数.                                
                                                                   
      NS   (I)   切り出すビットパターン間のビット数.              
                                                                   
      IT   (I)   配列NOの長さ.                                    
                                                                   
    
  4. 備考
    1. NBは1以上,1語のビット数(ここでは32)以下でなければならない.

SBYTE/SBYTES

  1. 機能
    連続した記憶領域にビットパターンを埋め込む.
  2. 呼び出し方法
    CALL SBYTE(NP,IO,IB,NB)
    CALL SBYTES(NP,NO,IB,NB,NS,IT)
  3. パラメーターの説明
                                                                   
      NP   (I)   連続した記憶領域(たとえば配列)の先頭となる語.  
                                                                   
      IO   (I)   埋め込むビットパターンを与える変数.              
                                                                   
      NO   (I)   埋め込むビットパターンを与える配列.              
                                                                   
      IB   (I)   先頭の語においてスキップするビット数.            
                                                                   
      NB   (I)   埋め込むビット数.                                
                                                                   
      NS   (I)   埋め込むビットパターン間のビット数.              
                                                                   
      IT   (I)   配列NOの長さ.                                    
                                                                   
    
  4. 備考
    1. NBは1以上,1語のビット数(ここでは32)以下でなければならない.

関数の説明

ISHIFT

  1. 機能
    ビットパターンをシフトする.
  2. 呼び出し方法
    ISHIFT(IW,N)
  3. パラメーターの説明
                                                                            
      IW       (I)   ビットパターンをシフトする1語長の引数.                
                                                                            
      N        (I)   シフトするビット数. N>0なら左側にシフトする.      
                     左側にあふれた分は右側に詰められる(circular shift)     
                     . N<0なら右側にシフトする.                         
                     右側にあふれた分は捨てられる(end-off shift).           
                                                                            
      ISHIFT   (I)   シフトした結果を返す関数値.                           
                                                                            
    
  4. 備考
    1. なし.

IAND/IOR

  1. 機能
    ビットごとのブール積/和を求める.
  2. 呼び出し方法
    IAND(I1,I2)
    IOR(I1,I2)
  3. パラメーターの説明
                                                       
      I1,      (I)   ビット列を与える1語長の引数.     
      I2                                               
                                                       
      IAND     (I)   ビット列のブール積を返す関数値.  
                                                       
      IOR      (I)   ビット列のブール和を返す関数値.  
                                                       
    
  4. 備考
    1. IAND, IORは実時間FORTRANに規定されており, 処理系が用意している場合がある.


Back to Main


Latex Source


地球流体電脳倶楽部 : 95/6/9 (Version 5.0)

NUMAGUTI Atusi <a1n@gfdl.gov>
Last Modified: Thu Aug 31 13:03:16 EDT 1995