【问题标题】:Print hexadecimal as hexadecimal将十六进制打印为十六进制
【发布时间】:2014-03-11 20:49:18
【问题描述】:
 int hexNumber = 0x7A;

   System.out.println(hexNumber); 

这将打印 122,但是如果我希望它打印 01111010 和 0x7A 怎么办?

【问题讨论】:

  • 请注意,int hexNumber = 0x7Aint hexNumber = 122完全相同做同样的事情。一旦源代码被编译,就无法知道整数文字的基数是什么。
  • 请理解:Java 程序中没有“十六进制数”这样的东西。 int hexNumber = 0x7Aint hexNumber = 122int hexNumber = 0b1111010完全相同。程序中不会“记住”你是使用十六进制、十进制还是二进制整数文字来初始化它。
  • @zakinster 我猜你赢了 4 秒...
  • int 不是十六进制或十进制。它是一个 32 位的值。

标签: java


【解决方案1】:
Integer.toString(hexNumber, 16);

【讨论】:

  • Integer.toHexString(hexNumber)
  • 谢谢。如果我想逐位打印呢?
  • @user3383062 Integer.toString(n, 2) ?如果这是您想要的,您可以遍历结果字符串...
【解决方案2】:

这将打印 122,但如果我希望它打印 01111010 和 0x7A 怎么办?

Integer.toHexString(hexNumber);  // 7a
Integer.toBinaryString(hexNumber);  // 1111010

【讨论】:

    【解决方案3】:
    int hexNumber = 0x7A;
    System.out.println(Integer.toBinaryString(hexNumber));
    System.out.println(Integer.toHexString(hexNumber));
    

    【讨论】:

      猜你喜欢
      • 2015-02-14
      • 1970-01-01
      • 2012-11-12
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      相关资源
      最近更新 更多