为什么我们不能对 float 和 double 数据类型使用按位运算符

2023-12-03

我是 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(使用前将#替换为@)

为什么我们不能对 float 和 double 数据类型使用按位运算符 的相关文章

随机推荐