|
|
1
3
像您这样强制转换指针违反了C语言的别名规则(编译器可能会假定不同类型的指针不指向相同的数据,除非在某些非常有限的情况下)。更好的方法可能是:
注意,这还修复了endian依赖项(假定浮点和整数endianness相同)和非法
一个更好的方法可能是根本不将其分成高/低部分,并使用
从标准的角度来看,使用联合有点可疑,但比指针强制转换要好。使用铸件
|
|
|
2
4
为什么不使用工会?
(请注意,行为代码依赖于实现,并且依赖于内部表示和特定的数据大小) 此外,如果使该结构包含位域,则可以分别访问各个浮点部分(符号、指数和尾数):
|
|
|
3
3
我建议看一下反汇编,看看现有的“指针抨击”方法为什么不起作用。在缺少二进制移位的情况下,您可能会使用更传统的移位(如果您使用的是64位系统)。 |
|
|
Leo · 为什么carg(-0)返回-pi? 1 年前 |
|
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 1 年前 |
|
|
Alexander · 为什么数字的输出不同? 1 年前 |
|
Ronny · 如何防止程序返回“inf”? 2 年前 |
|
|
EMS · 为什么双重打印的值与C中的浮点值相同,而它们的大小不同? 2 年前 |
|
|
Dakolas · 对python十进制库感到困惑 2 年前 |
|
|
RTC222 · 无法获取vrndscalepd的正确舍入模式代码 2 年前 |