12 uintL cl_digits_need (const cl_I& x, uintL base)
15 { return cl_value_len; } // x < 2^cl_value_len, base >= 2, also reicht das
17 { var uintC len = TheBignum(x)->length;
18 // 1+ceiling(len * intDsize*log(2)/log(base)) Bytes oder etwas mehr
19 var uintL need = 1+floor(len,1024/intDsize); // > ceiling(len*intDsize/1024) >= 0
20 switch (base) // need mit ceiling(1024*log(2)/log(base)) multiplizieren:
21 { case 2: need = 1024*need; break;
22 case 3: need = 647*need; break;
23 case 4: need = 512*need; break;
24 case 5: need = 442*need; break;
25 case 6: need = 397*need; break;
26 case 7: need = 365*need; break;
27 case 8: need = 342*need; break;
28 case 9: need = 324*need; break;
29 case 10: need = 309*need; break;
30 case 11: need = 297*need; break;
31 case 12: need = 286*need; break;
32 case 13: need = 277*need; break;
33 case 14: need = 269*need; break;
34 case 15: need = 263*need; break;
35 case 16: need = 256*need; break;
36 case 17: need = 251*need; break;
37 case 18: need = 246*need; break;
38 case 19: need = 242*need; break;
39 case 20: need = 237*need; break;
40 case 21: need = 234*need; break;
41 case 22: need = 230*need; break;
42 case 23: need = 227*need; break;
43 case 24: need = 224*need; break;
44 case 25: need = 221*need; break;
45 case 26: need = 218*need; break;
46 case 27: need = 216*need; break;
47 case 28: need = 214*need; break;
48 case 29: need = 211*need; break;
49 case 30: need = 209*need; break;
50 case 31: need = 207*need; break;
51 case 32: need = 205*need; break;
52 case 33: need = 203*need; break;
53 case 34: need = 202*need; break;
54 case 35: need = 200*need; break;
55 case 36: need = 199*need; break;
58 // Nun gilt need >= len*intDsize*log(2)/log(base).
59 need += 1; // Platzbedarf in Bytes