Bitwise là gì

Bitwise Operator là gì?

*
Bitwsie operator vào C~ (bitwise NOT)Lấy một trong những với nghịch hòn đảo tất cả bit của số kia.Dưới đấy là công tác C ví dụ:/* C Program khổng lồ demonstrate use of bitwise operators */ include int main() unsigned char a = 5, b = 9; // a = 5(00000101), b = 9(00001001) printf("a = %d, b = %d ", a, b); printf("a&b = %d ", a&b); // The result is 00000001 printf("a Kết quả:a = 5, b = 9a&b = 1a|b = 13a^b = 12~a = 250b>1 = 4

Dưới đây là một vài điều cần chú ý về toán thù tử bitwise.

Bạn đang xem: Bitwise là gì

1) Không sử dụng những tân oán tử left shift cùng right shift cho số âm. Nếu bất kỳ tân oán hạng làm sao là số âm, tác dụng vẫn là hành vi không xác định. Ví dụ: tác dụng của tất cả -1 2) Tân oán tử bitwise XOR là tân oán tử hữu ích độc nhất vô nhị cho gần như buổi phỏng vấn technical. Nó được thực hiện nhằm xử lý không hề ít vụ việc. Một ví dụ 1-1 giản: Được đưa ra một tập thích hợp những số trong các số đó toàn bộ những bộ phận xẩy ra chu kỳ chẵn trừ một số, search số xẩy ra lẻ lẻ việc này có thể được xử lý một bí quyết hiệu quả bằng phương pháp tiến hành XOR tất cả những số.// Function to lớn return the only odd occurring element int findOdd(int arr<>, int n) { int res = 0, i; for (i = 0; i Còn các vụ việc độc đáo khác rất có thể được xử lý cùng với toán thù tử XOR: Tìm số bị thiếu thốn, hoán thù thay đổi nhì số nhưng không áp dụng đổi thay trong thời điểm tạm thời, Tìm hai thành phần ko tái diễn...3) Các toán thù tử bitwise không nên được sử dụng vắt cho các toán thù tử súc tích.

Xem thêm: " Srsly Là Gì ? Srsly Có Nghĩa Là Gì

Kết quả của các tân oán tử xúc tích và ngắn gọn (&&, || và!) Là 0 hoặc 1, tuy nhiên những tân oán tử bitwise lại trả về một quý giá nguyên. Trong khi, những toán tử xúc tích coi ngẫu nhiên tân oán hạng không giống ko là một trong những. Ví dụ, hãy chu đáo lịch trình sau, công dụng của & với &và là khác nhau mang đến thuộc toán hạng.int main() int x = 2, y = 5; (x và y)? printf("True ") : printf("False "); (x &và y)? printf("True ") : printf("False "); return 0; // Output: False True 4) Toán tử left-shift với right-shift tương đương với phnghiền nhân cùng chia mang đến 2 tương xứng.Như sẽ kể ở điểm 1, nhị tân oán tử này chỉ làm việc cùng với số dương.int main() int x = 19; printf ("x > 1 = %d ", x >> 1); return 0; // Output: 38 9 5) Tân oán tử và hoàn toàn có thể được sử dụng để lập cập bình chọn xem một vài là số lẻ xuất xắc chẵnGiá trị của biểu thức (x & 1) sẽ không giống không chỉ có lúc x là số lẻ, còn nếu không giá trị vẫn bởi ko.int main() int x = 19; (x & 1)? printf("Odd"): printf("Even"); return 0; // Output: Odd6) Tân oán tử ~ nên được áp dụng một biện pháp cẩn thậnKết trái của toán tử ~ trên một số nhỏ rất có thể là một số trong những phệ ví như hiệu quả được tàng trữ vào một biến đổi unsigned. Và công dụng có thể là một số âm nếu như công dụng được lưu trữ vào một đổi mới signed (trả sử rằng những số âm được tàng trữ ngơi nghỉ dạng bổ sung của 2, trong số ấy bit quanh đó thuộc bên trái là sign bit).// cảnh báo that the output of the following program is compiler dependent int main() unsigned int x = 1; printf("Signed Result %d ", ~x); printf("Unsigned Result %ud ", ~x); return 0; /* Output: Signed Result -2 Unsigned Result 4294967294d */quý khách hàng hãy xem thêm bài xích trước để tò mò những dạng operator trong C/C++.

Leave a Reply

Your email address will not be published. Required fields are marked *