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

  • disneychannel

    disneychanne

    19 ŞUBAT 2006
  • spederson7

    spederson7

    17 Temmuz 2006
  • The Brister

    The Brister

    10 ŞUBAT 2008