<?php
echo (2884284 >> 16), '<br>'; // = 44
echo ((2884284 >> 16) & 0xFFFF), '<br>'; // 44
Yukarıdaki i 44 var
Peki nasıl 44-2.884.284 alınamadı??
Mhughes cevap genişletmek için:
Ikili 2884284 olduğunu:
1011000000001010111100
Eğer sağa kaydığı zaman, sağa bit kesilir ve soldaki bitler Yani 2884284 >> 16 olur 0 ile doldurulur.:
0000000000000000101100
..., Size belirtildiği gibi, 44 olduğunu. Fark bu ^ 16 2'ye bölünüp aşağı yuvarlama gibi aynıdır. Ters işlem sol <<, veya bit kaymasıdır. Bu soldaki bit keser ve sıfır sağdaki bit doldurur. Ancak, 44 << 16 olduğu:
1011000000000000000000
... Size kesilmiş bit verileri kaybettik. Bu sayı belki yeterince yakın olduğu, 2883584 olduğunu. Bu 2 ^ 16 ile çarpılarak olarak aynıdır.