Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

$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" の初期値である引数。$ZCRCstring に対して生成したチェックサムに 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)
  }

関連項目

FeedbackOpens in a new tab