【问题标题】:Converting string of number to Hex, Binary, and Decimal将数字字符串转换为十六进制、二进制和十进制
【发布时间】:2013-11-24 20:20:11
【问题描述】:

我正在尝试回答以下问题:

使用数组或ArrayList,生成20个随机数(整数 0 到 100 之间的值。100 不包括在内)。该程序应 执行以下任务。

  1. 将数组或 ArrayList 中的数字写入文件。

  2. 从文件中读取数字并以十进制、十六进制和二进制的形式在控制台上显示。

到目前为止,我的随机生成器运行良好,并且正在写入文件。至于重新读取文件并将文件中的数字显示为十六进制、十进制和二进制......我完全迷路了。这是我到目前为止所拥有的。

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;


public class Write {

  public static void main(String[] args) throws IOException {

    Random generator = new Random();

    ArrayList numList = new ArrayList();

    int n = 0;

    while( n < 20 ) {
      int numGen = generator.nextInt(100);
      numList.add(numGen);
      n++;
    }        

    String result = numList.toString().replaceAll("[\\[\\]]", "");
    result = result.replace(",", " ");

    System.out.print(result);

    String filePath = "C:/Users/Username/Desktop/FileIOTest/coding_assignment.txt";
    File f = new File(filePath);
    FileOutputStream fileout = new FileOutputStream (f);

    DataOutputStream dataOut = new DataOutputStream(fileout);

    dataOut.writeBytes(result);

    dataOut.close();
  }      
} 

【问题讨论】:

  • 如果您被允许这样做,Integer 类有两个方法可以为您执行此操作,称为 toBinaryStringtoHexString。如果您不允许使用这些,这里有很多示例说明如何在没有的情况下使用。查看相关问题->

标签: java arraylist binary decimal


【解决方案1】:

我猜你应该尝试自己完成这些行,所以我只给你一些基本的输入。

从文件中读取,三行:

fileIn
dataIn
readBytes

这些行应该很简单。要获取数字,请使用

split
Integer.ParseInt

要显示,你可以参考

Integer.toHexString
Integer.toBinaryString

【讨论】:

    【解决方案2】:

    从您的代码中,您还没有开始编写从文件中读取数字的代码。

    关于读取数值,您可以使用 BurreferReader 逐行读取数字。然后你可以使用 String.split 方法将数字拆分成一个数组,使用split(" ")

    关于将int值转换为BinaryHex模式,可以使用Integer类中的toBinaryStringtoHexString方法,比如

    int i = 20;

    System.out.println(i);//Print int value
    System.out.println(Integer.toBinaryString(i)); //Print Binary string
    System.out.println(Integer.toHexString(i)); // Print Hex string
    

    控制台输出如下:

    20
    10100
    14
    

    【讨论】:

      【解决方案3】:

      要将数字从基数 10 转换为 二进制十六进制,您可以简单地使用以下方法:

      Integer.toBinaryString(n);
      Integer.toHexString(n);
      

      但是,如果您真的想自己编写这些代码,请尝试查看以下网站: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/toBaseK.html

      它有助于提供一个简单的算法,将基数 ​​10 转换为任何其他数基数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-27
        • 1970-01-01
        • 2019-08-23
        • 1970-01-01
        • 2018-01-31
        • 2018-01-22
        相关资源
        最近更新 更多