簡體   English   中英

將數字字符串轉換為十六進制,二進制和十進制

[英]Converting string of number to Hex, Binary, and Decimal

我正在嘗試回答以下問題:

使用數組或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();
  }      
} 

從您的代碼,您尚未開始編寫用於從文件中讀取數字的代碼。

關於讀取值,可以使用BurreferReader逐行讀取數字。 然后,您可以使用String.split方法使用split(" ")將數字拆分為一個數組

關於將int值轉換為BinaryHex模式,可以在Integer類中使用toBinaryStringtoHexString方法,例如

我= 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

我想您應該嘗試自己完成這些行,因此我僅向您提供一些基本信息。

要從文件讀取,三行內容:

fileIn
dataIn
readBytes

這些行應該很容易。 要獲取數字,請使用

split
Integer.ParseInt

並顯示,您可以參考

Integer.toHexString
Integer.toBinaryString

要將數字從10開始轉換為二進制十六進制 ,您可以簡單地使用以下方法:

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

但是,如果您實際上想自己編寫這些代碼,請嘗試訪問以下網站: http : //www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/toBaseK.html

它有助於提供一種簡單的算法,該算法可以將基數從10轉換為其他任何數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM