在 Katai 中表示 Double 值

Posted

技术标签:

【中文标题】在 Katai 中表示 Double 值【英文标题】:representing Double values in Katai 【发布时间】:2020-04-27 04:37:19 【问题描述】:

我需要在我的 ksy 文件中读取的一些值是双精度值,我假设它是一个 binary64 结构。浮点数的本机数据类型不会延伸那么远。有没有人设法在 Kaitai 中表示这种数据类型?

【问题讨论】:

【参考方案1】:

“binary64”是一个普通的IEEE 754双精度浮点数,占用64位=8字节。

绝大多数语言都完美支持它们,随后,Kaitai Struct 为它们提供了内置支持,如 type: f8(浮点型,8 字节长)。

如果您对较大的浮点值(binary128、binary256 — 即四倍或八倍精度)比较感兴趣,由于在大多数目标语言中缺乏对这些类型的标准支持,KS 中没有对它们的内置支持.如果您想要类似的东西,推荐的方法是用您选择的目标语言将其实现为opaque type。这可能需要您引入一些使用某种软件仿真/复杂算法来实现这种类型的外部库——因为截至 2020 年,hardware support 在商品 CPU(如 Intel 或 ARM)中似乎几乎不存在。

有关这些的更多详细信息,请参阅issue #101。

【讨论】:

以上是关于在 Katai 中表示 Double 值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 postgresql 按多列中表示的值进行聚合

如何在java中的内存中表示null [duplicate]

如何在 Perl 中表示集合?

audition中表示声音大小的db是啥意思,为啥上下都用0表示?

哪些 Swift 类型可以在 Objective-C 中表示?

有没有办法在 GraphQL 中表示键值对的对象