![](/img/trans.png)
[英]Efficient method for converting a floating point number to string without any library function
[英]Is there any way to create a floating point number without using ldexp?
我正在尝试使用符号,指数和尾数创建一个IEEE754浮点数,但我似乎无法让ldexp()函数在我的计算机上工作,所以我想知道是否有办法通过以下方式创建该数字:直接操纵位的值。
弄乱值表示的一个标准习惯是将您的位作为int
或char
数组的一部分,然后将memcpy()
作为您想要的类型。
请注意,通过编写union
一个字段并读取另一个字段,或者通过类型处理(从一种类型转换和解除引用指针,而不是char*
)来执行您所要求的操作在C ++标准下是技术上未定义的行为,因此应该要避免。 众所周知,编译器应用优化,这些优化是由假设程序不执行这些行为而导致的,并且当它们执行时会导致意外行为。
对于此处考虑的指针转换的确切实例,Clang / LLVM开发人员在博客文章中发布了这是未定义的行为,他们可能以意想不到的方式进行优化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.