所以我在研究时偶然发现了类似的代码。我知道代码将返回0表示正浮点数或返回1表示负浮点数。
int sign;
sign = ((int)(((long)(13.37f) & 0x80000000L) >> 31)); // sign = 0
sign = ((int)(((long)(-13.37f) & 0x80000000L) >> 31)); // sign = 1
如何在31次长时间的转移中实现这一目标?
答案 0 :(得分:2)
实际上它返回操作数的32位二进制表示的第1位,这是浮点数的符号位。
答案 1 :(得分:2)
整数的第一位是符号位:1表示该值为负,0表示正。
这整个操作只是为了得到整数的第一位
此操作的作用是: