是否有任何语言能够表达在某些数据位中编码不同值的方式?

问题描述

通常,出于效率原因,低级语言在同一组位中编码不同类型的信息。

  • 一个简单的例子是指针:值 0 表示 NULL,所有其他值表示内存地址。

  • 或浮点数 (IEEE 754) 可以编码十进制值以及 Infinity、-Infinity、+0、-0、NaN 等。

  • 一个例子是 UTF8 字符,其中第一位告诉我们该字节是 ASCII 字符,还是该字符采用的一元编码字节数。
    甚至有符号整数也使用位来编码符号(一个的补码整数可以表示 -0)。

通常以这种方式编码的值由执行按位运算的手工代码段处理。
但这意味着我们不能对其进行概括:例如,您无法表达一个通用的 Maybe(又名 Optional)类型,该类型在某些未使用的位组合上对 nothing/Empty 状态进行编码。如果你想解释存储在你知道类型的一些字节中的值,你需要阅读文档:类型定义没有告诉你如何使用这些位。

是否有任何语言的类型系统能够理解和表达信息如何存储在您可以使用的位中?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)