Đề XuấT, 2024

Editor Choice

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

Cả hai nhà cung cấp dịch vụ này có thể sử dụng để đánh giá các câu lệnh có điều kiện. Toán tử & là một toán tử logic cũng như, một bitwise. Toán tử && hoàn toàn là toán tử logic. Sự khác biệt cơ bản giữa toán tử & & && là toán tử & đánh giá cả hai mặt của biểu thức trong khi đó, toán tử && chỉ đánh giá phía bên trái của biểu thức để thu được kết quả cuối cùng. Hãy cho chúng tôi hiểu sự khác biệt khác giữa & và && với sự trợ giúp của biểu đồ so sánh.

Biểu đồ so sánh

Cơ sở để so sánh&&&
Nhà điều hànhNó là một "Toán tử bitwise".Nó là một "Toán tử logic".
Đánh giáNó đánh giá cả bên trái và bên phải của biểu thức.Nó chỉ đánh giá phía bên trái của biểu thức.
Hoạt động trênNó hoạt động trên "kiểu dữ liệu Boolean" cũng như hoạt động trên "bit".Nó chỉ hoạt động trên "kiểu dữ liệu Boolean".
Sử dụngSử dụng để kiểm tra điều kiện logic và cũng được sử dụng để che dấu các bit nhất định như bit chẵn lẻ.Chỉ được sử dụng để kiểm tra điều kiện logic.

Định nghĩa của & (Bitwise AND)

Toán tử '&' này được sử dụng làm cả hai, toán tử logic (&) và toán tử bitwise. Nó hoạt động trên boolean cũng như dữ liệu nhị phân. Khi đó, toán tử & được sử dụng như một toán tử & toán tử, nó sẽ dẫn đến sự thật, nếu cả hai mặt của biểu thức đánh giá là đúng, thì nó sẽ trả về ảo sai. Nó cho phép trình biên dịch đánh giá cả hai phía của biểu thức. Đó là, ngay cả khi phía bên trái của biểu thức cho kết quả sai, nó đánh giá phía bên phải của biểu thức.

Cho chúng tôi hiểu điều này với một ví dụ.

 int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // đầu ra sai b = 5 

Ở đây, khi đánh giá phía bên trái của biểu thức (a == 6), kết quả là sai, toán tử & sau đó đánh giá phía bên phải của biểu thức (b ++ == 6) do đó, giá trị của b tăng.

Khi '&' được sử dụng như một toán tử bitwise của Cameron, đầu tiên, nó chuyển đổi cả hai toán hạng thành dạng nhị phân và sau đó vận hành trên nó bằng cách sử dụng & toán tử, từng bit một. Sau khi hoạt động, kết quả thu được, ở dạng nhị phân, sau đó được chuyển đổi thành số thập phân. Bất kỳ bit nào là 0 trong một trong hai toán hạng đều dẫn đến 0. Nếu cả hai bit của toán hạng đều là 1, thì bit kết quả là 1. Bitwise & toán tử được điều khiển bởi cùng một bảng chân lý như bởi toán tử & toán tử của nó.

Hãy cho chúng tôi xem hoạt động bitwise của & toán tử.

 int a; a = 3 & 4; // 011 & 100 = 000 system.out.println ("a =" + a); // đầu ra a = 0 

Ở đây, giá trị thập phân 3 và 4 ban đầu được chuyển đổi thành dạng nhị phân của chúng và sau đó toán tử & bitwise thực hiện thao tác & trên chúng từng bit một. Kết quả thu được là ở dạng nhị phân, sau đó được chuyển đổi thành dạng thập phân một lần nữa.

Định nghĩa của && (ngắn mạch VÀ)

Toán tử && này hoạt động hoàn toàn như một toán tử logic. Nó chỉ hoạt động trên kiểu dữ liệu boolean. Nó cũng được gọi là toán tử ngắn mạch. Vì nó chỉ kiểm tra phía bên trái của biểu thức. Nếu phía bên trái của biểu thức cho kết quả là sai, thì nó không bận tâm về việc đánh giá phía bên phải của biểu thức.

Cho chúng tôi hiểu hoạt động của toán tử && bằng một ví dụ.

 int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // đầu ra sai b = 4 

Ở đây, điều kiện (a == 6) là sai, toán tử && không đánh giá biểu thức (b ++ == 6) do đó, giá trị của b không tăng.

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

  1. Toán tử & là toán tử logic cũng như toán tử bit, vì nó hoạt động trên cả booleans cũng như dữ liệu nhị phân trong khi đó, toán tử && chỉ là toán tử logic vì nó chỉ hoạt động trên loại dữ liệu boolean.
  2. Toán tử & đánh giá cả hai phía của biểu thức để có được kết quả cuối cùng trong khi đó, toán tử && chỉ đánh giá phía bên trái của biểu thức & nếu hóa ra sai, nó thậm chí không đánh giá phía bên phải của biểu thức.

Chú thích:

Trong khi đánh giá kiểu dữ liệu boolean, cả hai toán tử đều kết quả là đúng true nếu cả hai toán hạng đều đúng, thì nó lại trả về Sai false.

Phần kết luận:

Cả hai toán tử & & &&, được sử dụng để đánh giá điều kiện boolean trong khi đó, toán tử & cũng được sử dụng cho hoạt động bitwise. Khi chúng tôi yêu cầu đánh giá cả hai phía của biểu thức, toán tử & được sử dụng khác, chúng tôi có thể sử dụng toán tử &&.

Top