Loading Now

Các kiểu dữ liệu số nguyên trong Java

Các kiểu dữ liệu số nguyên trong Java

Bài tập

Bạn hãy viết chương trình tạo ra 2 biến a và b kiểu số nguyên. Sau đó gán giá trị cho a = 384847522, b = 988347273 và thực hiện hiển thị ra màn hình tích của biến a và biến b.

Lý thuyết

Trong ngôn ngữ lập trình Java có các kiểu dữ liệu lưu trữ số nguyên như: byte, short, int, long, ...

Sự khác biệt giữa các kiểu dữ liệu này là miền giá trị:

Miền giá trị của kiểu byte là từ -128 tới  127.

Miền giá trị của kiểu short là từ -32768 tới 32767.

Miền giá trị của kiểu int là từ -2147483648 tới 2147483647.

Miền giá trị của kiểu long là từ -9223372036854775808 tới 9223372036854775807.

Có thể thấy miền giá trị của kiểu long là lớn nhất, bạn có thể dùng kiểu dữ liệu này để thay cho các kiểu dữ liệu khác nhưng bù lại dùng kiểu dữ liệu này sẽ tốn bộ nhớ hơn (kiểu dữ liệu có miền giá trị càng lớn sẽ càng tốn bộ nhớ). Do đó bạn cần sử dụng các kiểu dữ liệu một cách hợp lý, ví dụ biến để lưu trữ số học sinh trong một lớp học nên là kiểu short vì thường một lớp chỉ có vài chục học sinh.

Quay lại bài này, bạn không thể dùng kiểu int để lưu giá trị cho biến a và b do kết quả của phép nhân 2 số kiểu int sẽ là 1 số kiểu int mà miền giá trị của kiểu int là không đủ để lưu trữ kết quả của phép nhân 384847522 * 988347273. Ví dụ:

public class Variable {
	public static void main(String[] args) {
		int a = 384847522;
		int b = 988347273;
		System.out.println(a * b);
	}
}

Kết quả khi chạy chương trình:

-628954446

Có thể thấy kết quả này là sai hoàn toàn, bạn cần dùng kiểu dữ liệu có miền giá trị lớn hơn để lưu trữ biến a và biến b, đó là kiểu long:

public class Variable {
	public static void main(String[] args) {
		long a = 384847522;
		long b = 988347273;
		System.out.println(a * b);
	}
}

Kết quả khi chạy chương trình:

380362998889507506

Đọc tới đây bạn đã hiêu về các kiểu dữ liệu, hãy quay lại phần bài tập và làm thử.

Hướng dẫn

Dùng kiểu long thay vì int cho biến a và biến b.

Code mẫu:

public class Variable {
	public static void main(String[] args) {
		long a = 384847522;
		long b = 988347273;
		System.out.println(a * b);
	}
}

Hoặc nếu bạn muốn dùng kiểu int cho biến a và biến b thì có thể làm như sau:

public class Variable {
	public static void main(String[] args) {
		int a = 384847522;
		int b = 988347273;
		System.out.println((long) a * b);
	}
}

Post Comment

Contact