#!/usr/bin/env node; /****************************************************************************** * This program demonstrates how to align integers with printf() * * Copyright © 2020 Richard Lesh. All rights reserved. *****************************************************************************/ const sprintf = require('sprintf-js').sprintf; var A32 = 106276; var B32 = -2147483648; var C32 = 4080400; var A64 = 11294588176; var B64 = -4294967296; var C64 = 9223372036854775807; const main = async () => { console.log("|%11d|%9x|", A32, A32); console.log("|%-11d|%-9x|", A32, A32); console.log("|%011d|%09x|", A32, A32); console.log("|%11d|%9x|", B32, B32); console.log("|%-11d|%-9x|", B32, B32); console.log("|%011d|%09x|", B32, B32); console.log("|%11d|%9x|", C32, C32); console.log("|%-11d|%-9x|", C32, C32); console.log("|%011d|%09x|", C32, C32); /****************************************************************************** * JavaScript sprintf() doesn't work for integers larger * than 32-bits. *****************************************************************************/ console.log(sprintf("|%20d|%17x|", A64, A64)); console.log(sprintf("|%-20d|%-17x|", A64, A64)); console.log(sprintf("|%020d|%017x|", A64, A64)); console.log(sprintf("|%20d|%17x|", B64, B64)); console.log(sprintf("|%-20d|%-17x|", B64, B64)); console.log(sprintf("|%020d|%017x|", B64, B64)); console.log(sprintf("|%20d|%17x|", C64, C64)); console.log(sprintf("|%-20d|%-17x|", C64, C64)); console.log(sprintf("|%020d|%017x|", C64, C64)); } main().catch( e => { console.error(e) } );