
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