【发布时间】:2015-10-21 14:02:38
【问题描述】:
我是 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);
}
}
【问题讨论】:
-
这些不是一元运算符。一元运算符是那些只接受一个操作数的运算符,例如
y = -x中的一元减号 -
@ameyCU 不完全是骗人的,那个被标记为 C++。
-
@user694733 那里的答案涉及两种语言。
标签: c