#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int Grial(int n)
{
int a=n<<3;
int b=a&(-n);
int temp;
a=a^(-n);
while(b!=0)
{
b=b<<1;
temp=a;
a=a^b;
b=temp&b;
}
return a;
}
int main()
{
cout<<Grial(15)<<endl;
cout<<Grial(-15)<<endl;
cout<<Grial(5)<<endl;
cout<<Grial(-11)<<endl;
cout<<Grial(-13)<<endl;
cout<<Grial(100000)<<endl;
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/liuhuiyan_2014/article/details/47429599