30/09/2018, 16:12
[Wiki] Phép toán đảo bit - NOT
Đây là toán tử một ngôi thực hiện đảo các bit của toán hạng, các bit giá trị 1 trở thành 0
và bit giá trị 0 thành 1. Thực hiện trên kiểu số nguyên .
cú pháp :
~<toán_hạng>
Ví dụ 1:
unsigned char c = 3, d;
d = ~c;
Kết quả
d = 252;
Ví dụ 2:
unsigned int c = 3, d;
d = ~c;
Kết quả
d = 65532;
Bài liên quan
anh cho em hỏi nếu là kiểu số nguyên có dấu thì nó sẽ cho kết quả như nào vậy ạ
Vấn đề đây là một phép toán đảo bit, nên là số âm hay số dương thì việc đảo bit đều được thực hiện giống nhau. Điểm đặc biệt là đối với số âm thì MSB (most significant bit) sẽ bằng 1. Thế nên ta sẽ đảo lại cho bằng 0.
Trong ví dụ này ta đảo -3, kết quả in ra màn hình sẽ như sau
@ndg2394 thử giải thích tại sao kết quả lại như vậy xem?
Hi anh @ltd, em tình cờ gặp phải vấn đề về đảo bit. em lên mạng gg search và tình cờ đọc đc bài viết này. .Do chưa thấy câu trả lời và e cũng khá tò mò tìm câu trả lời nên mặc dù rep mang tính đào mộ .Em xin được giải thích code của anh.
Đây là nguyên mẫu của hàm:
Chuyển đổi một giá trị số nguyên thành một chuỗi được kết thúc bằng null bằng cách sử dụng cơ sở được chỉ định và lưu trữ kết quả trong mảng được cho bởi tham số str. Tại sao phải nhi_phan[33] thì trong đây viết rất rõ
http://www.cplusplus.com/reference/cstdlib/itoa/
Cuối cùng ta đươc kết quả trên màn hình.
Lần đầu post cmt mang tính đóng góp lên 4room