Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Convert Base

10:20 04-11-2021 600 lượt xem 2 bình luận 17:58 04-11-2021

Xin chào mọi người, em đang làm bài tập liên quan đến việc chuyển hệ ( cụ thể là chuyển từ các hệ khác qua hệ cơ số 10)

Ở dòng  code: ( Trong hàm)
BigInteger baseBigInteger = BigInteger.valueOf(base);
em đang cố chuyển từ hệ nhập vào sang kiểu BigInteger, nhưng nó lại bị lỗi và hiện ra lỗi NumberFormatException. 

Mọi người giúp em cách fix cái này với ạ

#java

#NumberFormatException

#ConverBase

 

Code: 

 

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String number = "77777777777777777777777777777777777777777777777777777777";
		BigInteger number2 = OtherBaseToDec(number, 10);
		System.out.println(number2);
		
//		BigInteger base16 = new BigInteger("16");
//		System.out.println(base16.pow(16));
		
		
		
		
	}
	
	public static BigInteger OtherBaseToDec(String number, int base) {
        BigInteger result = new BigInteger("0");
        BigInteger baseBigInteger = BigInteger.valueOf(base);
        number = number.toUpperCase();
        
		String HEX = "0123456789ABCDEF";
        for (int i = 0; i < number.length(); i++) {
        	BigInteger hexIndex = new BigInteger(HEX.indexOf(number.charAt(i)) + " ");
			BigInteger value = baseBigInteger.pow(number.length()-i-1 ).multiply(hexIndex) ;
        	result = result.add(value);
		}
        
		return result;
    }
	

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Tập tành code đã bình luận 18:02 04-11-2021

Cảm ơn mọi người, em đã tìm ra lỗi sai và đã fix được rồi ạ
Sai ở dòng này trong hàm ạ

 

BigInteger hexIndex = new BigInteger(HEX.indexOf(number.charAt(i)) + " ");

 

Supporter Moderator đã bình luận 17:59 04-11-2021

NumberFormatException => Định dạng số bị sai.

Câu hỏi mới nhất