gpt4 book ai didi

precision - Ada 定点类型的限制

转载 作者:行者123 更新时间:2023-12-04 05:07:23 26 4
gpt4 key购买 nike

阅读本文 http://en.wikibooks.org/wiki/Ada_Programming/Types/delta
让我想知道 delta 的极限值是多少是。

例如

delta 127 range 0..1_000_000;

需要一个字节来保存增量值。

但是
delta 0.0000000001 range 0..1;

需要更多字节,对吗?

那么delta有限制吗?我们当然不能无限期地进行更小的增量吗?

在上面的链接中它说

If the compiler accepts your fixed point type definition, it guarantees that values represented by that type will have at least the degree of accuracy specified (or better). If the compiler cannot support the type definition (e.g. due to limited hardware) then a compile-time error will result.

最佳答案

编译后的代码不包含 Delta值(value)无处不在;该类型的存储值被缩放,因此所需的大小对应于除以 Small 的范围(请记住,如果 Delta 不是 2 的幂,您需要指定 SmallDelta 相同)。

对于 GNAT,事实证明支持的最小值为 Delta ,并且有一个最大值 Size对于以下类型的对象:在 Mac OS X (Intel) 上,

Small_Delta : constant := 2.0 ** (-127);
Small_Bound : constant := 2.0 ** (-64);
type T1 is delta Small_Delta range -Small_Bound .. Small_Bound;

失败
"T1'Small" too small, minimum allowed is 2.0**(-80)


Larger_Delta : constant := 2.0 ** (-64);
Larger_Bound : constant := 2.0;
type T2 is delta Larger_Delta range -Larger_Bound .. Larger_Bound;

失败
size required (67) for type "T2" too large, maximum allowed is 64

(我不确定为什么是 67,而不是 65!)

关于precision - Ada 定点类型的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15353425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com