1 // print_integer().
2
3 // General includes.
4 #include "base/cl_sysdep.h"
5
6 // Specification.
7 #include "cln/integer_io.h"
8
9
10 // Implementation.
11
12 #include "cln/output.h"
13
14 namespace cln {
15
print_integer(std::ostream & stream,const cl_print_rational_flags & flags,const cl_I & z)16 void print_integer (std::ostream& stream, const cl_print_rational_flags& flags, const cl_I& z)
17 {
18 var unsigned int base = flags.rational_base;
19 if (flags.rational_readably)
20 // Radix-Specifier ausgeben:
21 switch (base) {
22 case 2:
23 fprintchar(stream,'#');
24 fprintchar(stream,'b');
25 break;
26 case 8:
27 fprintchar(stream,'#');
28 fprintchar(stream,'o');
29 break;
30 case 16:
31 fprintchar(stream,'#');
32 fprintchar(stream,'x');
33 break;
34 case 10:
35 // Basis 10 bei Integers durch
36 // nachgestellten Punkt kennzeichnen:
37 print_integer(stream,base,z);
38 fprintchar(stream,'.');
39 return;
40 default:
41 // Basis in #nR-Schreibweise ausgeben:
42 fprintchar(stream,'#');
43 print_integer(stream,10,base);
44 fprintchar(stream,'r');
45 break;
46 }
47 // Integer in Basis base ausgeben:
48 print_integer(stream,base,z);
49 }
50
51 } // namespace cln
52