答案1
您可以看到bc
限制:
$ echo 'limits' | bc
BC_BASE_MAX = 2147483647
BC_DIM_MAX = 16777215
BC_SCALE_MAX = 2147483647
BC_STRING_MAX = 2147483647
MAX Exponent = 9223372036854775807
Number of vars = 32767
我们看到man bc (1p)
:
数组是一维的,最多可以包含 {BC_DIM_MAX} 个元素。索引应从零开始,因此数组的索引范围为 0 到 {BC_DIM_MAX}−1。
调查1.07.1它被定义到文件中const.h
。
/* Definitions for arrays. */
#define BC_DIM_MAX 16777215 /* this should be NODE_SIZE^NODE_DEPTH-1 */
#define NODE_SIZE 64 /* Must be a power of 2. */
#define NODE_MASK 0x3f /* Must be NODE_SIZE-1. */
#define NODE_SHIFT 6 /* Number of 1 bits in NODE_MASK. */
#define NODE_DEPTH 4
答案2
通过反复试验,上限为 2²⁴ = 16,777,216。仍不确定为什么这是上限或如何更改它。