Đề XuấT, 2025

Editor Choice

Sự khác biệt giữa int và long

Các kiểu dữ liệu int và long nằm trong số hai kiểu dữ liệu nguyên được mô tả trong Java. Trong Java, các kiểu int và long được ký, các giá trị + ve và -ve. Java không hỗ trợ các kiểu int và long không dấu. Sự khác biệt cơ bản giữa kiểu dữ liệu int và long là chiều rộng của mỗi loại. Kiểu dữ liệu int có độ rộng 32 bit cho biến kiểu int. Mặt khác, kiểu dữ liệu dài có độ rộng 64 bit cho biến kiểu dài. Biểu đồ so sánh dưới đây cho thấy một số khác biệt khác giữa int và long.

Biểu đồ so sánh

Cơ sở để so sánhintDài
Căn bảnKiểu dữ liệu int là 32 bit.Kiểu dữ liệu dài là 64 bit.
ByteNếu tính bằng byte, int là 4 byte.Nếu tính bằng byte, dài là 8 byte.
Phạm viTrong Java, phạm vi của kiểu int là Gian2, 147, 483, 648 đến 2, 147, 483, 647.Trong Java, phạm vi loại dài là
Gian9, 223, 372, 036, 854, 775, 809 đến 9, 223, 372, 036, 854, 775, 807.
Từ khóaTừ khóa được sử dụng để khai báo một biến kiểu int là "int".Từ khóa được sử dụng để khai báo một biến loại dài là "dài".
Ký ứcBộ nhớ cần thiết để lưu trữ một biến int ít hơn so với dài.Bộ nhớ cần thiết để lưu trữ một biến dài lớn hơn so với int.

Định nghĩa kiểu int

Kiểu dữ liệu int là kiểu dữ liệu được sử dụng phổ biến nhất chứa giá trị nguyên trong đó. Một giá trị mà một biến int có thể giữ không quá ngắn và không quá dài. Nói chung, giá trị của một biến int được sử dụng như một biến vòng lặp điều khiển vòng lặp hoặc nó được sử dụng như một biến chỉ mục của một mảng. Kiểu dữ liệu byte và short có phạm vi ngắn hơn khi so sánh với kiểu dữ liệu int, nhưng chúng không thể thay thế int, ngay cả khi giá trị của biến int có phạm vi ngắn hơn. Lý do đằng sau điều này là khi chúng ta sử dụng byte kiểu dữ liệu và ngắn trong một biểu thức sau đó trong khi đánh giá biểu thức đó, byte và short kiểu dữ liệu được trình biên dịch chuyển sang int. Vì vậy, từ điều này, có thể nói rằng tốt hơn là sử dụng int bất cứ nơi nào cần một số nguyên.
Chúng ta hãy xem việc sử dụng int datatype.

 byte a = 70; byte b = 80; int c = a * b; // không có lỗi. byte d = a + 10; // Biên dịch lỗi thời gian. 

Như bạn có thể quan sát ở đoạn mã trên, hai biến byte và a chứa giá trị 70 và 80, là giá trị trong phạm vi byte hợp lệ. Nhưng, kết quả trung gian của a * b; vượt quá giới hạn của byte. Do đó, trình biên dịch sẽ tự động thúc đẩy các biến byte, short và char để nhập int, nếu chúng được sử dụng trong một biểu thức. Bây giờ, bạn có thể thấy rằng kết quả của một * b được gán cho một biến int không gây ra bất kỳ lỗi nào và biên dịch trơn tru vì các biến a và b được thăng cấp thành kiểu int và gán kiểu int cho kiểu int doesn ' t gây ra lỗi.

Trong dòng mã cuối cùng, bạn có thể thấy một biểu thức, trong đó giá trị 10 được thêm vào một biến byte 'a' kết quả của nó vẫn không vượt quá giới hạn của byte. Tuy nhiên, việc gán kết quả trung gian của biểu thức, a a 10 10 10 cho biến byte 'd', gây ra lỗi thời gian biên dịch vì trong khi biến byte đánh giá biểu thức 'a' được thăng cấp thành kiểu int. Và việc gán kiểu int cho kiểu byte không được phép. Do đó, nó gây ra lỗi thời gian biên dịch.

Định nghĩa loại dài

Kiểu dữ liệu dài có phạm vi và chiều rộng lớn nhất so với các kiểu byte, short và int. Trong Java, loại dài là loại số nguyên có chữ ký 64 bit. Kiểu dài được sử dụng trong đó kiểu int không lớn để giữ giá trị mong muốn. Phạm vi dài là Gian9, 223, 372, 036, 854, 775, 809 đến 9, 223, 372, 036, 854, 775, 807 khá lớn, để giữ các giá trị lớn hơn như số nguyên lớn. Chúng ta có thể hiểu loại dài với một ví dụ dưới đây.

 trọng số lớp {public static void main (String args []) {int item; int wt_per_item; gram dài; Hộp dài; mục = 10000000; // chỉ định các mục số wt_per_item = 10000; // chỉ định trọng lượng của một mặt hàng tính bằng kilôgam gram = wt_item * 1000; // chuyển trọng lượng sang gram Box = item * gram; // tính trọng lượng của hộp theo gam System.out.println ("Số lượng vật phẩm" + vật phẩm); System.out.println ("Trọng lượng mỗi mặt hàng" + wt_per_item + "kilos"); System.out.println ("Trọng lượng của hộp tính bằng gam" + Hộp + "kilôgam"); }} Số lượng vật phẩm 10000000 Trọng lượng mỗi vật phẩm 10000 kilôgam Trọng lượng của hộp tính bằng gram 100000000000000 kilo 

Quan sát đầu ra trong mã trên; kết quả tính toán cho trọng lượng của toàn bộ hộp chứa 10000000 vật phẩm trong đó mỗi vật nặng 10000 kg. Giá trị tính toán cho trọng lượng của hộp tính bằng gam, không thể được giữ bởi một biến int. Do đó, đôi khi cần sử dụng loại dài khi các giá trị lớn được tính toán hoặc giữ.

Sự khác biệt chính giữa int và long

  1. Sự khác biệt cơ bản giữa kiểu int và long là chiều rộng của chúng trong đó int là 32 bit và dài là 64 bit.
  2. Kiểu int và long khi được tính bằng byte thay vì bit, kiểu int là 4 byte và kiểu dài chỉ là hai lần nếu kiểu int tức là 8 byte.
  3. Trong Java, phạm vi của kiểu int là từ mật2, 147, 483, 648 đến 2, 147, 483, 647 trong khi đó, phạm vi của loại dài là từ loại 9, 223, 372, 036, 854, 775, 809 đến 9, 223, 372, 036, 854, 775, 807.
  4. Từ khóa được sử dụng để khai báo một biến có kiểu int là kiểu int int. Mặt khác, từ khóa được sử dụng để khai báo biến loại dài là Long long.
  5. Nói chung, bộ nhớ cần thiết để giữ giá trị của kiểu int ít hơn so với dài.

Phần kết luận:

Trong khi viết mã nếu có nhu cầu về giá trị phạm vi trung bình thì bạn có thể sử dụng kiểu int nhưng khi đầu ra được tạo bởi bất kỳ biểu thức nào sẽ lớn hơn hoặc các giá trị lớn hơn đang được sử dụng để tính toán thì phải sử dụng biến loại dài để giữ giá trị.

Top