.TH NUMBER 8 .SH NAME number \- C compatable numbers for shell scripts .SH SYNOPSIS .B aux/number [ -v ] [ .B -f .I fmt ] [ .IR num ... ] .SH DESCRIPTION .I Number parses its argument as simple C expression containing the operators .LR / , .LR * , .LR % , .LR + , .LR - , .LR & , .LR ^ , and .LR | on numbers parsed with .I strtoll (see .IR atof (2)). Numbers may be decorated with a binary scale .LR k , .LR m , .LR g , .LR t , .LR e , .LR z , .L y using 1024 as a base. The result is printed as with .IR print (2). The default format is .BR %lld ; alternate formats can be specified with .IR -f . Formats are as in .IR print (2). The special format .L « prints the result as a sequence of left-shifts and ors. The alternate format flag .L # combines strings of 1s. The format .L m prints the exact result using the same binary scale as above. The alternate format flag .L # allows rounding. The format width changes the base from 1024. All operations are preformed in 64-bit signed arithmetic. .SH EXAMPLE Print out the number of 512-byte blocks in 1MB in hex .IP .EX ; aux/number -f '%#x' 1m/512 0x800 .EE .SH SOURCE .B /sys/src/cmd/aux/number.c .SH "SEE ALSO .IR dc (1), .IR atof (2), .IR getflags (8) .SH BUGS .I Number is too fancy yet has no loops, functions, unsigned arithmetic or arbitrary precicison.