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

  • ImBluecams

    ImBluecams

    25 Kasım 2012
  • jpmkm1

    jpmkm1

    4 NİSAN 2008
  • Xbox

    Xbox

    1 Kasım 2005