Tôi hiện đang học cho kỳ thi C++. Một trong những câu hỏi trong bài kiểm tra thực tế là:Tại sao chuyển bit này lại thành 51
Đầu ra của tuyên bố này là gì.
cout <<(11>>1)<<1<<endl;
Như tôi thấy. 11 tổ chức tương đương nhị phân của
1011.
Chuyển số nhị phân này với 1 chút sang bên phải làm cho nó:
0101
Sau đó chuyển RẰNG số một sang trái làm cho nó
1010
Mà đánh giá đến 10.
Tuy nhiên, bằng cách chạy cùng một tuyên bố trong trình biên dịch của tôi, nó nói t anh ta đánh giá số 51. Ai đó có thể giải thích điều này cho tôi không?
Bạn hãy thử 'cout <<((11>> 1) << 1) << endl; '? –
Nó không phải là 51, đó là một 5 theo sau là một 1. – jpw
Cảm ơn tất cả mọi người! Tôi thấy nó khá thất vọng khi mọi người sẽ downvote câu hỏi này. Tôi chỉ muốn học –