A few result:Code:#define C64 unsigned long long C64 hash_rand() { C64 r = 0; unsigned long r1, r2= 0; for (unsigned int i = 0; i < 32; ++i) { r1 ^= rand() << i; r2 ^= rand() << i; } r = r1 | (C64) r2 << 32; printf("R1=%ul R2=%ul Hash_rand=%ull\n",r1,r2,r); return r; }

Why I am not getting "hash_rand" as the combination of r1 and r2?Code:R1=687865691l R2=988029917l Hash_rand=687865691ll R1=591616934l R2=454174817l Hash_rand=591616934ll R1=930215157l R2=214394930l Hash_rand=930215157ll R1=2936190921l R2=1135713105l Hash_rand=2936190921ll R1=1256449038l R2=885147166l Hash_rand=1256449038ll R1=1912210059l R2=2292338960l Hash_rand=1912210059ll R1=1680048649l R2=2457515678l Hash_rand=1680048649ll R1=1436782960l R2=737207696l Hash_rand=1436782960ll R1=3008899124l R2=445239638l Hash_rand=3008899124ll R1=1501323191l R2=1232787536l Hash_rand=1501323191ll R1=1555984070l R2=213463547l Hash_rand=1555984070ll R1=278736328l R2=2676575472l Hash_rand=278736328ll R1=1041491509l R2=1880486007l Hash_rand=1041491509ll R1=2564025414l R2=3808829273l Hash_rand=2564025414ll R1=943291562l R2=3734505863l Hash_rand=943291562ll R1=1744278179l R2=3876748683l Hash_rand=1744278179ll R1=3977573745l R2=1631571305l Hash_rand=3977573745ll R1=2742987346l R2=1756414339l Hash_rand=2742987346ll

thx

FS