<?php
echo (2884284 >> 16), '<br>'; // = 44
echo ((2884284 >> 16) & 0xFFFF), '<br>'; // 44
從上述我得到44如何扭轉此操作?
那麼,如何可以從44到retrive ??? 2884284
<?php
echo (2884284 >> 16), '<br>'; // = 44
echo ((2884284 >> 16) & 0xFFFF), '<br>'; // 44
從上述我得到44如何扭轉此操作?
那麼,如何可以從44到retrive ??? 2884284
你不能。你正在通過這種轉變銷燬數據。
要擴大mhughes回答:
2884284二進制是:
1011000000001010111100
當你向右移動,位在右邊被切斷,並在左邊位填充0所以2884284 >> 16
變爲:
0000000000000000101100
...你提到這,就是44注意這是相同的,通過2^16分和向下取整。反向操作是<<
,或左移位。它切斷左邊的位並用零填充右邊的位。但是44 << 16
是:
1011000000000000000000
...也就是說,你從截位丟失的數據。這個數字是2883584,可能已經足夠接近了。請注意,這與乘以2^16相同。
並通過使用掩模 – tbischel 2010-05-14 21:09:06