#include <stdio.h>
int function(int a) //此函数返回某个数的补码中最高字节位全为0,或者最低字节位全为1的数。
{
int shift=(sizeof(int)-1)<<3; //最低字节位都应是1
int rightmove; //或者
int leftmove; //最高字节位都应是0
int middlenum; //有一说一,最高字节位全为1的数在较小的数里面不是一抓一大堆?
int rightnum;
int leftdecision;
rightmove=a>>shift;
leftmove=a<<shift;
middlenum=0xff<<shift;
rightnum=rightmove&0xff;
leftdecision=middlenum^leftmove;
return ((!rightnum)||(!leftdecision)); //返回结果
}
int main()
{
int a;
int i;
for(i=0;;i++) //i值从268435710到268435711处可看见明显的一个函数返回值从0到1的变化
{
a=function(i); //只需对某个数调用函数function()即可
printf("%d\n",a); //此处是用死循环从0开始依次判断下去
if(a==0)
{printf("%d\n",i);}
}
return 0;
}