Bu işlemi tersine çevirmek için nasıl?

2 Cevap php
<?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ı??

2 Cevap

Cant. Sen vardiya yaparak verileri yok ediyoruz.

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.