【问题标题】:Pin encryption 4 digit number to hexadecimalPin 加密 4 位数字转十六进制
【发布时间】:2018-04-27 07:44:17
【问题描述】:

这些是程序必须遵循的步骤:

  1. 请求用户输入 4 位密码。 [完成]
  2. 将 4 位密码转换为十六进制。 [?]
  3. 生成两个大于 1000 的随机数并转换为十六进制。[?]
  4. 将转换后的引脚夹在两个随机转换后的数字之间。 [可以做到]

到目前为止我的代码是:

public static void main(String[] args) 
{
    int digit = 0;
    Scanner scan = new Scanner(System.in);
    System.out.println("Please enter a four digit pin:");
    digit = scan.nextInt(); // scanning for user input

    String Hexpin =Integer.toHexString(digit);
    System.out.println(Hexpin); 
}

我目前需要帮助将 pin 转换为十六进制并生成两个大于 1000 的随机数并将它们也转换为十六进制。但是,我可以轻松地做三明治。在此之前我尝试搜索答案,但找不到任何其他内容:

C# convert integer to hex and back again

然而,这篇文章将 int 转换为十六进制字符串而不是十进制。

【问题讨论】:

  • // unusual result? - 它有什么不寻常之处?
  • 编辑:结果并没有异常,只是再次测试,请忽略我之前的评论。
  • 如果您所做的只是以十六进制打印数字,最简单的方法是System.out.printf("%x", digit);。将其“夹在中间”:System.out.println("%x%x%x", before, digit, after);.

标签: java encryption hex


【解决方案1】:

使用Integer.valueOf(String.valueOf(digit), 16) 进行转换。如果你改变你的digit并改成String,你不需要做String.valueOf(...)

结果:

In: 1234 
Out(hex): 4660

【讨论】:

    【解决方案2】:

    转换为十六进制使用:

    String Hexpin = Integer.toHexString(digit);
    

    要转换回整数使用:

    int numberFromHex = Integer.parseInt(Hexpin, 16);
    

    在您的代码注释中明确您所说的异常结果。

    【讨论】:

      【解决方案3】:

      试一试,我认为这就是您所要求的。只需要一个小修复。希望对您有所帮助!

          public static void main(String[] args){
      
          Scanner scan = new Scanner(System.in);
          System.out.println("Please enter a four digit pin:");
          int digit = scan.nextInt(); // scanning for user input as INT
          String hexDigit = Integer.toHexString(digit); //convert PIN to hex
      
          int one = ((int)(Math.random()+1000)*10000); //two randoms bw 1000 and 10000
          int two = ((int)(Math.random()+1000)*10000);
      
          String oneStr = Integer.toHexString(one); //convert to hex
          String twoStr = Integer.toHexString(two); //convert to hex
      
          System.out.println(oneStr + hexDigit + twoStr); //print concated
      }
      

      【讨论】:

        猜你喜欢
        • 2012-06-04
        • 2013-09-20
        • 2018-07-23
        • 1970-01-01
        • 1970-01-01
        • 2019-01-09
        • 2013-11-21
        • 2016-07-31
        • 1970-01-01
        相关资源
        最近更新 更多