我想使用浮点数作为uint16的xor,如下所示:
uint16_t a=20000;
double r,x,xo;
r=3.8;
xo=.1;
x=(int) r*xo*(1-xo);
c=a^x;当我运行测试时,会发生以下错误:
invalid operand to binary ^如何将x转换为16位整数值?
发布于 2014-03-25 12:16:10
问题是x仍然是一个双值。演员阵容
x=(int) r*xo*(1-xo);截断这个数字,但它仍然是一个双数字。
要做您想做的事情,您需要在xor之前声明x为int或强制转换:
c=a^((int)x);发布于 2014-03-25 12:10:54
nesC是C的扩展,因此您可以将浮点数转换为整数,就像在C中使用强制转换一样。例如:
(int)(x+0.5)请注意,这有其局限性,请参阅这里的更多详细信息:http://www.cs.tut.fi/~jkorpela/round.html
https://stackoverflow.com/questions/21534935
复制相似问题