level 1
SethWoolly
楼主
void g_func(uint64_t in, const uint64_t x, uint64_t *out)
{
uint64_t a,b;
a=in&x;
b=a<<31;
a=(a<<30)|(a>>1);
a=a&x;
b=(b<<32)|(b>>1);
b=b>>31;
*out=a|b;
}
void main()
{
uint64_t in, x=0xfffffffe00000000, out, randbit;
int i, idx, pro=0;
srand((unsigned)time(NULL));
for(i=0;i<100000000;i++){
for(idx=0;idx<64;idx++){
randbit=rand()%2;
in=(randbit>>idx)^in;
}
g_func(in,x,&out);
if(out==in)
pro=pro+1;
printf("%d",pro);
puts("\n");
getchar();
}
2014年01月14日 10点01分
1
{
uint64_t a,b;
a=in&x;
b=a<<31;
a=(a<<30)|(a>>1);
a=a&x;
b=(b<<32)|(b>>1);
b=b>>31;
*out=a|b;
}
void main()
{
uint64_t in, x=0xfffffffe00000000, out, randbit;
int i, idx, pro=0;
srand((unsigned)time(NULL));
for(i=0;i<100000000;i++){
for(idx=0;idx<64;idx++){
randbit=rand()%2;
in=(randbit>>idx)^in;
}
g_func(in,x,&out);
if(out==in)
pro=pro+1;
printf("%d",pro);
puts("\n");
getchar();
}