我是 c 的新手,在这里我试图以存储在内存中的方式打印存储在 float 和 double 变量中的值。但编译器不允许我在浮点和双精度变量上使用按位运算符!我想知道为什么我们不能使用像“&”和“|”这样的按位运算符float 和 double 数据类型上的运算符,如果我们可以使用它会发生什么?它们有其他方法吗?或者我们可以绕过这些问题吗?
这是我尝试处理的代码,
int main()
{
float valF = 10;
double valD = 10;
printf("\n\t%i\t%li\n",valI,sizeof(valF));
for(i = 8*sizeof(valF); i >= 0 ; i--)
{
printf("%i",(valF & (1<<i))? 1 : 0);
}
printf("\n\t%i\t%li\n",valD,sizeof(valS));
for(i = 8*sizeof(valD); i >= 0 ; i--)
{
printf("%i",(valD & (1<<i))? 1 : 0);
}
}
二进制&
运算符是按位与运算符。它仅为整型类型定义。
所有位运算符都是如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)