zlibのadler32 functionは、空の文字列が渡されたときに元のシードを返すとは限りません。たとえば、次のようになぜadler32(0xFFFFFFFF、 "")= 0xE000Eですか?
adler32(0xFFFFFFFF, // seed
(const Bytef *) "", // buffer
0 // length
)
戻り0xE000E
。私は代わりに0xFFFFFFFF
を返すべきだと思います。
他のほとんどの値については、元のシードを返します。しかし、1965855の数値の場合、から 0xFFFFFFFFの場合、入力文字列が空の場合はadler32
がシードを変更します。
これは実装のバグか奇妙な振る舞いですか、あるいはAdler-32関数の範囲は実際に[0,0xFFFFFFFF]のサブセットですか?
ポインタがNULL
の場合、adler32
は常に1
(初期シード)を返します。これはdocumentedの動作です。