这段简单的代码是我的问题:
扩展汇编(gcc);英特尔语法(-masm=intel);平台 - x86
它应该做什么:返回一个长度为 1 且符号 (+-) 与 x 相同的浮点数。
float signf(float x)
{
float r = 1;
asm volatile (
"and %1,0x80000000;"
"or %0,%1;"
:"=r"(r):"r"(x));
return r;
}
用公平掷骰子选择的任意随机数调用它会给出:
signf of -1352353.3253: -5.60519e-045