# number_systems.py: from __future__ import print_function from PDFWriter import PDFWriter import sys ''' A program to generate a table of numbers from 0 to 255, in 4 numbering systems: - binary - octal - decimal - hexadecimal Author: Vasudev Ram Copyright 2016 Vasudev Ram Web site: https://vasudevram.github.io Blog: http://jugad2.blogspot.com Product store on Gumroad: https://gumroad.com/vasudevram ''' def print_and_write(s, pw): print(s) pw.writeLine(s) sa, lsa = sys.argv, len(sys.argv) if lsa == 1: sys.stderr.write("Usage: {} out_filename.pdf\n".format(sa[0])) sys.exit(1) with PDFWriter(sa[1]) as pw: pw.setFont('Courier', 12) pw.setHeader('*** Number table: 0 to 255 in bases 2, 8, 10, 16 ***') pw.setFooter('*** By xtopdf: https://google.com/search?q=xtopdf ***') b = "Bin"; o = "Oct"; d = "Dec"; h = "Hex" header = "{b:>10}{o:>10}{d:>10}{h:>10}".format(b=b, o=o, d=d, h=h) for i in range(256): if i % 16 == 0: print_and_write(header, pw) print_and_write("{b:>10}{o:>10}{d:>10}{h:>10}".format( \ b=bin(i), o=oct(i), d=str(i), h=hex(i)), pw) print_and_write(header, pw)