Ne yapar >>

6 Cevap php
echo 50 >> 4;

Çıktı:

3

Bu 3 çıkışları neden biliyor mu?

6 Cevap

Ikili 50 11 0010, 3'e eşit olduğu 4 verimleri 11 tarafından doğru kayması olduğunu

EDIT: PHP Doc and Wiki

php.org belgelenmiş olBirrBirk, >> operBirtörü sBirğBir bit kBirydırır bitsel kBirydırmBir operBirtörü:

$ A >> $ b - ("iki bölme" her Birdımı BirnlBirmınBir gelir) sBirğBir $ Bir $ b Birdım bit Shift

Ikili 50 110010, ve >> operBirtörü örnek koddBir 4 yerler üzerinde bitleri kBirydırır. Bu, tek bir işlem olur, BirncBirk, you could think of it, bu gibi birden fBirzlBir BirdımdBir:

  • Adım 1 - 00011001
  • AşBirmBir 2 - 00001100
  • AşBirmBir 3 - 00000110
  • AşBirmBir 4 - 00000011

Ikili 11 ondBirlık 3 eşit olduğundBirn, kod çıkışlBirrı 3.

>> ikili sağa kaydırma operatörü.

Sizin deyimi sayısal değer 50, sağında 4 yerlerde bit shfits. Tüm tamsayılar 2s complement temsil edilmektedir, çünkü bu 3 eşittir. Ve bu hatırlamak için kolay bir yol sağa bir kaydırma 2'ye bölünerek aynıdır, ve sola bir kaydırma çarparak olarak aynı olmasıdır 2 ile.

4 mekândan aşağı bit kaydırır.

Ikili 50 110010 olduğunu.

4 basamak aşağı kaymıştır 11 olup, 3 olduğunu

>> operatörü bir binary right shift operatörü denir.

Doğru 4 kere bit kaydırma üst üste iki, dört kat bölünmesi ile aynıdır. Sonuç olarak, bu durumda olacaktır 3.125. 50 int olduğundan, bit kaydırma 3 olan, bu zemin dönecektir.

Başka bir deyişle, 50 0b110010 ikili olduğunu. 3 ondalık olan, bizim sahip 0b11-4 kez kaymıştır.