Rumah >pembangunan bahagian belakang >C++ >Apakah perbezaan antara << dan >> dalam c++
<< dan >> dalam C++ ialah operator anjakan bitwise, digunakan untuk anjakan bit ke kiri dan anjakan bit ke kanan bagi integer. Operator anjakan kiri (<<) mengalihkan perwakilan binari integer ke kiri, mengisi bit kosong dengan bit tanda atau 0. Operator anjakan kanan (>>) mengalihkan perwakilan binari integer ke kanan, mengisi bit kosong dengan bit tanda atau 0.
Perbezaan antara <<> dalam C++
<< (operator syif kiri) dan >> , digunakan untuk mengalihkan integer bertanda atau tidak bertanda bitwise. Perbezaan utama antara mereka adalah arah pergerakan.
Operator anjakan kiri (<<)
Operator anjakan kiri << Apabila integer ialah integer yang ditandatangani, bit yang dikosongkan akan diisi dengan bit tanda (0 untuk nombor positif, 1 untuk nombor negatif);
Operator anjakan kanan (>>)
operator anjakan kanan >> Mengalihkan perwakilan perduaan integer ke kanan dengan bilangan digit yang ditentukan. Untuk integer yang ditandatangani, bit tanda disalin ke dalam bit yang dikosongkan, dengan itu mengekalkan tanda nombor tersebut. Untuk integer tidak bertanda, bit kosong diisi dengan 0s.
Penggunaan
Pengendali anjakan kiri biasanya digunakan untuk mendarab integer dengan kuasa 2, kerana ia bersamaan dengan menambah 0 dalam perwakilan binari.
int x = 5; // 二进制:101 x << 2; // 二进制:10100 (等效于 x * 2^2)
Pengendali anjakan kanan biasanya digunakan untuk membahagikan integer dengan kuasa 2, kerana ia bersamaan dengan mengeluarkan 0 dalam perwakilan binari.
int y = 20; // 二进制:10100 y >> 2; // 二进制:101 (等效于 y / 2^2)
Contoh
Jadual berikut membandingkan kesan penggunaan << integer yang ditandatangani
2 | ||
---|---|---|
5 << 2 | 20 | 20 |
-5 << 2 | -20 | -20 |
5 >> 2</p>
<td>1</td>
<td>1</td>
<tr>
<td>
<code>-5 >> 2 -20 |