fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. interface NumFmt {
  8.  
  9. String string(byte b);
  10. String string(short n);
  11. String string(int n);
  12. String string(long n);
  13. }
  14.  
  15. final class Hex implements NumFmt {
  16.  
  17. public static final Hex HEX = new Hex();
  18.  
  19. @Override
  20. public String string(byte b) {
  21. return String.format("0x%02X", b);
  22. }
  23.  
  24. @Override
  25. public String string(short n) {
  26. return String.format("0x%04X", n);
  27. }
  28.  
  29. @Override
  30. public String string(int n) {
  31. return String.format("0x%08X", n);
  32. }
  33.  
  34. @Override
  35. public String string(long n) {
  36. return String.format("0x%016X", n);
  37. }
  38. }
  39.  
  40. final class Bin implements NumFmt {
  41.  
  42. public static final Bin BIN = new Bin();
  43.  
  44. @Override
  45. public String string(byte b) {
  46. return String.format("0b%8s", Integer.toBinaryString(b)).replace(' ', '0');
  47. }
  48.  
  49. @Override
  50. public String string(short n) {
  51. return String.format("0b%16s", Integer.toBinaryString(n)).replace(' ', '0');
  52. }
  53.  
  54. @Override
  55. public String string(int n) {
  56. return String.format("0b%32s", Integer.toBinaryString(n)).replace(' ', '0');
  57. }
  58.  
  59. @Override
  60. public String string(long n) {
  61. return String.format("0b%64s", Long.toBinaryString(n)).replace(' ', '0');
  62. }
  63. }
  64.  
  65. /* Name of the class has to be "Main" only if the class is public. */
  66. class Ideone {
  67.  
  68. public static void main (String[] args) throws java.lang.Exception {
  69. for (NumFmt fmt : new NumFmt[]{
  70. Hex.HEX, Bin.BIN
  71. }) {
  72. for (String s : new String[]{
  73. fmt.string(11),
  74. fmt.string((byte) 11),
  75. fmt.string(11L),
  76. }) {
  77. System.out.println(s);
  78. }
  79. }
  80. }
  81. }
Success #stdin #stdout 0.12s 34192KB
stdin
Standard input is empty
stdout
0x0000000B
0x0B
0x000000000000000B
0b00000000000000000000000000001011
0b00001011
0b0000000000000000000000000000000000000000000000000000000000001011