SORU
20 EYLÜL 2011, Salı


Bit kullanarak VEYA 0 kat sayısı

Bir meslektaşım numaraları bir bit kullanarak zemin yüzer veya bir yöntem üzerinde tökezledi

var a = 13.6 | 0; //a == 13

Bu konuda konuşmak ve bazı şeyleri merak ediyorduk.

  • Nasıl çalışır? Teorimiz böyle bir operatörü kullanarak bir tamsayı sayı, böylece kesirli kısmını kaldırma atan oldu
  • Math.floor üzerinden herhangi bir avantaj var mı? Belki biraz daha hızlı değil mi? (kelime oyunu değil) kullanılır
  • Herhangi bir dezavantajları var mı? Belki bazı durumlarda işe yaramıyor mu? Netlik bariz bir çözüm bulmak için vaktimiz olmadığı, ve evet, bu soruyu yazıyorum.

Teşekkürler.

CEVAP
20 EYLÜL 2011, Salı


Nasıl çalışır? Teorimiz böyle bir operatörü kullanarak atan oldu bir tam sayı numarasını, böylece kesirli kısmı kaldırılıyor

İşaretsiz sağa kaydırma hariç tüm bit düzey işlemleri, >>>, iş üzerinde 32 bitlik imzalı tamsayı. Yani bit düzey işlemleri kullanarak bir tamsayı için bir şamandıra dönüştürür.

Matematik yapmanın herhangi bir avantajı var mı.kat? Belki biraz daha hızlı? (kelime oyunu değil) kullanılır

http://jsperf.com/or-vs-floor/2 biraz daha hızlı görünüyor

Herhangi bir dezavantajları var mı? Belki bazı durumlarda işe yaramıyor mu? Netlik bariz bir ne olduğunu anlamaya ve de elimizde olduğuna göre, Bu soruyu yazıyorum.

  • JsLint geçecek değil.
  • 32-bit tamsayı sadece imzaladı
  • Garip Karşılaştırmalı davranış:* *4, (NaN | 0) === 0

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • A Alkhaldi

    A Alkhaldi

    12 Mayıs 2007
  • AmazonWireless

    AmazonWirele

    8 EYLÜL 2010
  • B4ROK

    B4ROK

    1 EKİM 2008