【问题标题】:Byte representation of floats in Common LispCommon Lisp 中浮点数的字节表示
【发布时间】:2020-11-18 00:23:05
【问题描述】:

我正在尝试用 Common Lisp 编写一些东西来以特定的二进制格式读写数据,作为学习 Lisp 的一种方式,并希望最终得到一个有用的(或至少有趣的)工具。我从the parser project in Practical Common Lisp 开始,并从那里开始构建。我不需要的一件事是任意长度(以字节为单位)的浮点数。 CL 为无符号整数提供了ldb,从那里开始构建有符号整数并不难——是否有任何类似的有用功能可用于获取和设置浮点数的符号、指数和小数部分?我不想为此使用库,因为部分目的是练习编写代码,但我也不想花时间重新实现已经内置的内容。

【问题讨论】:

标签: floating-point common-lisp binary-data


【解决方案1】:

如果您正在读取二进制格式的浮点数,则需要为它实现自己的解析器。 它很可能是一个 IEEE 浮点编码值。您可以在 Wikipedia 上找到您需要的所有信息:https://en.wikipedia.org/wiki/IEEE_754

根据在 CL 中获取浮点值的各个组成部分,您可以在此处使用各种函数:http://clhs.lisp.se/Body/f_dec_fl.htm

  • 解码浮动
  • 浮点数
  • 浮动符号
  • 浮点数
  • 浮点精度
  • 整数解码浮点数

【讨论】:

  • OP 确实要求“任意长度的浮点数(以字节为单位)”...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多