crc32file
2024/09/04 13:37
crc32file 機能
[その他のコマンド]CRC-32 を計算します。
コマンドライン
crc32file <intvar> <file name>
機能説明
引数の文字列から CRC (Cyclic Redundancy Checking) を計算します。多項式(右回り)は以下のとおりです。
100000100110000010001110110110111 ([[tex:x^{32}+x^{26}+x^{23}+x^{22}+x^{16}+x^{12}+x^{11}+x^{10}+x^{8}+x^{7}+x^{5}+x^{4}+x^{2}+x^{1}+x^{0}]])計算結果は <intvar> に数値として格納されます。
crc32file でファイルが開けなかった場合は、システム変数 <result> に -1 が格納されます。
CRC アルゴリズムの実装(C言語)を以下に示します。
このアルゴリズムは、Ethernet の FCS (Frame Check Sequence) に適用されています。
#define CRCPOLY2 0xEDB88320UL /* 左右逆転 */ static unsigned long crc2(int n, unsigned char c[]) { int i, j; unsigned long r; r = 0xFFFFFFFFUL; for (i = 0; i < n; i++) { r ^= c[i]; for (j = 0; j < CHAR_BIT; j++) if (r & 1) r = (r >> 1) ^ CRCPOLY2; else r >>= 1; } return r ^ 0xFFFFFFFFUL; }
パラメータの説明
指定するパラメータは以下の通りです。パラメータ | 型 | パラメータ説明 |
---|---|---|
<intvar> | 文字列 | 計算結果を格納する変数を指定します。 |
<file name> | 整数 | 対象ファイルを指定します。 |
対象バージョン
バージョン 4.60 以降で利用可能です。戻り値
戻り値として以下の変数が定義されます。変数名 | 値 | 意味 |
---|---|---|
result | -1 | crc32file でファイルが開けなかった |
<intvar> | 文字列 | CRC-32 の計算結果 |
関連コマンド
種別:その他 | Ver | 機能の簡易説明 |
---|---|---|
crc16 | 4.78以降 | CRC-16-IBMを計算する。 |
crc16file | 4.78以降 | CRC-16-IBMを計算する。 |
crc32 | 4.60以降 | CRC-32を計算する。 |
使用方法
使用例
・crc32file を計算する場合crc32file crc 'foo.bin' if result = -1 then messagebox 'file open error' 'CRC32 = ' else sprintf '0x%08X' crc messagebox inputstr 'CRC32 = ' endif