我有一個問題,我想將我的輸入字符串變成BigInteger,並且輸出應該是二進制字符串。我使用了這個代碼,但它只能讀取「0」和「1」。Java:字符串到BigInteger到二進制
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
BigInteger big = new BigInteger(input, 2);
String binarystring = big.toString(2);
System.out.println(binarystring);
當我將其更改爲:BigInteger big = new BigInteger(input, 16);
我可以以十六進制數,但沒有空間寫。
我想要的是我可以寫任何字符串,程序應該給我它的二進制值的字符串。
如何確定輸入字符串在哪個基礎?你是否限制它說二進制,八進制,十進制或十六進制?用戶會在數字之前添加字符(例如0xDEADBEEF)以指示基數? – user1071777
@ user1071777不,輸入應該是正常字符(字母和數字),但輸出應該是二進制。沒有用戶不需要任何東西來表示基地 – fihdi
我在說什麼,你怎麼知道輸入字符串「345」是在基地8還是基地10或基地16或任何高於基地6?在不知道基數的情況下,可能有任何數量的二進制表示。防爆。 345在基地8到二進制是11100101,345基地10是101011001等 – user1071777