$ZCRC
Synopsis
$ZCRC(string,mode,expression)
パラメータ
string | チェックサム演算が実行される文字列。 |
mode | 使用するチェックサム・モードを指定する整数コード。 |
expression | オプション — "seed" の初期値。整数として指定します。省略した場合、既定はゼロ (0) です。 |
概要
$ZCRCstring に対して冗長巡回検査を実行し、整数のチェックサム値を返します。$ZCRC によって返される値は、使用するパラメータにより異なります。
-
$ZCRC(string,mode) は、文字列のチェックサムを計算して返します。mode の値により、$ZCRC が計算するチェックサムのタイプが決まります。
-
$ZCRC(string,mode,expression) は、mode により指定されたモードを使用して、string のチェックサムを計算して返します。expression は、複数の文字列をチェックする際 "seed" の初期値を提供します。これにより、複数の文字列で連続的に $ZCRC 計算を実行し、それらの文字列を連結して $ZCRC を実行したかのように、同じチェックサム値を得ることができます。
パラメータ
string
バイト文字列。値、変数、式として指定できます。バイトの文字列のみを使用し、それ以外を使用した場合は、<FUNCTION> エラーが発生します。
mode
使用するチェックサム・アルゴリズム。すべてのチェックサム・モードは、8 ビット (ASCII) または 16 ビット Unicode (ワイド) 文字を使用できます。規定の mode 値は以下のとおりです。
モード | 計算 |
---|---|
0 | 8 ビットのバイト加算値。文字列内の文字の ASCII 値の合計です。したがって、$ZCRC(2,0)=50、$ZCRC(22,0)=100、$ZCRC(23,0)=101、$ZCRC(32,0)=101 となります。 |
1 | XOR 8 ビットの 加算値 |
2 | 16 ビットのデータ・ツリー CRC-CCITT |
3 | 16 ビットのデータ・ツリー CRC-16 |
4 | XMODEM プロトコルの 16 ビット CRC |
5 | 正しい 16 ビット CRC-CCITT |
6 | 正しい 16 ビット CRC-16 |
7 | 正しい 32 ビット CRC-32。これは、OS X および Java ユーティリティ・パッケージの CRC32 クラスの cksum ユーティリティ・アルゴリズム 3 に相当します。 |
MSM 言語モードの Caché は、mode 値 0 と 1 をサポートします。これら以外の mode 値の場合は、<FUNCT> エラーが発生します。
expression
"seed" の初期値である引数。$ZCRC は string に対して生成したチェックサムに expression を追加します。これにより、複数の文字列で連続的に $ZCRC 計算を実行し、それらの文字列を連結して $ZCRC を実行したかのように、チェックサム値を得ることができます。
例
以下の例では、文字 A、B、および C を含む文字列で mode=0 を使用し、それぞれチェックサム 198 を返します。
WRITE $ZCRC("ABC",0),!
WRITE $ZCRC("CAB",0),!
WRITE $ZCRC("BCA",0),!
チェックサムは、以下のようにして得られます。
WRITE $ASCII("A")+$ASCII("B")+$ASCII("C") /* 65+66+67 = 198 */
以下の例は、文字列 “ABC” の各 mode により返される値を示します。
FOR i=0:1:7 {
WRITE !,"mode ",i,"=",$ZCRC("ABC",i)
}
関連項目
-
$ZCYC 関数