如何在 Fortran 中实现 BCD?

How can I implement BCD in Fortran?

不确定我的问题标题是否有意义,请耐心等待。我想找到一个用尽可能少的位表示单个数字的系统。有一种叫做 "Densely packed decimal" (https://en.wikipedia.org/wiki/Densely_packed_decimal) 的方法,这将是我的理想解决方案,但我什至不知道这是否可行,或者如果没有专家的进一步研究或指导,我什至不知道如何实施它。

下一个最好的事情是能够使用 4 位寻址系统来表示数字,但我再次不确定这是否可能。

所以!除非上述 methods/systems 的实现,否则我可以满足于 1 字节数据类型,我可以用它来表示两个整数对。 Fortran 中是否有 1 字节 data-type,或者它不允许那种级别的控制?

(几乎)每种编程语言都有一个 1 字节的数据类型。这是性格。它实际上是一个字节的定义,它可以容纳一个默认字符。

Fortran 中还有一个 1 字节(严格来说是 1 个八位字节)整数类型,可通过 integer(int8) 访问,其中 int8 是来自 iso_fortran_env 模块的常量(Fortran 2008).

两者都可以用来实现这样的事情。您是否会使用除以其他数字、异或或 Fortran 位操作内部函数 https://www.nsc.liu.se/~boein/f77to90/a5.html#section10(可能是最佳选择)取决于您。