[LISPWORKS][Common Lisp HyperSpec (TM)] [Previous][Up][Next]


Variable *PRINT-BASE*, *PRINT-RADIX*

Value Type:

*print-base*---a radix. *print-radix*---a generalized boolean.

Initial Value:

The initial value of *print-base* is 10. The initial value of *print-radix* is false.

Description:

*print-base* and *print-radix* control the printing of rationals. The value of *print-base* is called the current output base.

The value of *print-base* is the radix in which the printer will print rationals. For radices above 10, letters of the alphabet are used to represent digits above 9.

If the value of *print-radix* is true, the printer will print a radix specifier to indicate the radix in which it is printing a rational number. The radix specifier is always printed using lowercase letters. If *print-base* is 2, 8, or 16, then the radix specifier used is #b, #o, or #x, respectively. For integers, base ten is indicated by a trailing decimal point instead of a leading radix specifier; for ratios, #10r is used.

Examples:

 (let ((*print-base* 24.) (*print-radix* t)) 
   (print 23.))
>>  #24rN
=>  23
 (setq *print-base* 10) =>  10
 (setq *print-radix* nil) =>  NIL                                          
 (dotimes (i 35)
    (let ((*print-base* (+ i 2)))           ;print the decimal number 40 
      (write 40)                            ;in each base from 2 to 36
      (if (zerop (mod i 10)) (terpri) (format t " "))))
>>  101000
>>  1111 220 130 104 55 50 44 40 37 34
>>  31 2C 2A 28 26 24 22 20 1J 1I
>>  1H 1G 1F 1E 1D 1C 1B 1A 19 18
>>  17 16 15 14 
=>  NIL
 (dolist (pb '(2 3 8 10 16))               
    (let ((*print-radix* t)                 ;print the integer 10 and 
          (*print-base* pb))                ;the ratio 1/10 in bases 2, 
     (format t "~&~S  ~S~%" 10 1/10)))        ;3, 8, 10, 16
>>  #b1010  #b1/1010
>>  #3r101  #3r1/101
>>  #o12  #o1/12
>>  10.  #10r1/10
>>  #xA  #x1/A
=>  NIL

Affected By:

Might be bound by format, and write, write-to-string.

See Also:

format, write, write-to-string

Notes: None.


[Starting Points][Contents][Index][Symbols][Glossary][Issues]
Copyright 1996-2005, LispWorks Ltd. All rights reserved.