题目:使用C语言实现sizeof()函数,用于测试该主机整型数位数(16/32/64);
1、位运算(有符号整型中,所有位为1时,代表的数为-1)
int mySizeOf()
{
int a=0;
int b=1;
int count=0;
while(a!=-1)
{
a=a^b;
b=b<<1;
count++;
}
return count;
}
2、位运算(如上,当有符号整型数最高位为1时,即形式为:1XXXX,该数一定是个负数)
int mySizeOf()
{
int a=1;
int count=1;
while(a>0)
{
a=a<<1;
count++;
}
return count;
}
int mySizeOf()
{
int a=0;
int b=(char*)(&a+1)-(char*)(&a);
return 8*b;
}