不用任何位操作,获得一个int变量的第九位

2014-11-24 03:07:17 · 作者: · 浏览: 1

不用任何位操作(&、|、^、<<、>>、~),实现一个函数,得到一个int型数的第九位(从第一位开始计数)

[cpp]
int check()
{
union utype
{
int i;
char c;
};
utype u;
u.i=1;
return u.c==1;
}

int getbit(int val)
{
char *p=(char *)&val;
p++;
if(check())
return (*p)%2; //如果是小端模式

else
return (*p)/128; //如果大端模式
}

int check()
{
union utype
{
int i;
char c;
};
utype u;
u.i=1;
return u.c==1;
}

int getbit(int val)
{
char *p=(char *)&val;
p++;
if(check())
return (*p)%2; //如果是小端模式

else
return (*p)/128; //如果大端模式
}

int get9thbit(int val)

{

return (val/256)%2;

}