答え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)
:
配列は1次元で、最大{BC_DIM_MAX}個の要素を含めることができます。インデックスは0から始まる必要があるため、配列のインデックス範囲は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です。まだわからないなぜこれは上限値ですか、それともどのように変更しますか?