2012-03-15 4 views
7

Tại sao mã sau xuất 128?Hành vi in ​​lạ trong PHP?

<?php 
    print 4 << 5; 
?> 
+0

http://php.net/ hướng dẫn sử dụng/vi/language.operators.bitwise.php –

+0

Xem hướng dẫn sử dụng các toán tử bitwise: http://www.php.net/manual/en/language.operators.bitwise.php – ghkaren

Trả lời

13

Vì đó là bitwise operator. Tôi nghĩ rằng nó có nghĩa là 4 nhân đến 2^5 vì nhà điều hành có nghĩa là

phím Shift các bit của $ một bước $ b sang trái (mỗi bước có nghĩa là "nhân bởi hai")

nên đó là năm bước. Đó là 4 * 2 * 2 * 2 * 2 * 2 (Nhưng tôi đoán ở đây; mọi thứ xảy ra ở mức độ bit).

+0

Cảm ơn Nicola.Nice Giải thích – yogeshK

14

Tham khảo Bitwise Operators:

Chúng ta phải tìm 4 < < 5. Nó có nghĩa là chuyển các bit của 4 5 lần sang trái:

4 is 00000000000000000000000000000100 
4 << 5 after shifting is 00000000000000000000000010000000 
00000000000000000000000010000000 is 2^7 = 2*2*2*2*2*2*2 = 128 
+0

+1 cho thí dụ. Nhắc tôi rằng tôi phải học cách * các toán tử bitwise thực sự hoạt động *. :) –

+0

@AmalMurali cảm ơn anh trai. :) – mithunsatheesh