我想知道如何将float 64(或float 32)转换为相应的二进制/十六进制格式。如果能指定字节序,那就太好了(我更喜欢以little-endian格式打印)。
链接帖子:How to convert hex string to a float in Rust?
谢谢!
我想知道如何将float 64(或float 32)转换为相应的二进制/十六进制格式。如果能指定字节序,那就太好了(我更喜欢以little-endian格式打印)。
链接帖子:How to convert hex string to a float in Rust?
谢谢!
2条答案
按热度按时间bihw5rsg1#
使用
f32::to_be_bytes
、f32::to_le_bytes
或f32::to_ne_bytes
(取决于所需的字节序),然后格式化数组的结果元素:不需要不安全和危险的
transmute
。Rust Playground Link
yrdbyhpb2#
这只是从the answer到您链接的问题的逆操作:
Rust Playground link
格式化前,对
u32
值(bytes
)调用.from_be()
、.from_le()
或.swap_bytes()
以更改字节顺序。对于较大的数据类型,请将f32
和u32
更改为f64
和u64
。类似地,这个问题的另一个答案(使用
f32.from_bits
)在f32.to_bits
中有一个正逆函数(尽管这些函数仍然被标记为不稳定)。