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

  • Creavite

    Creavite

    8 Mart 2009
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006
  • TheGamer2323

    TheGamer2323

    25 Ocak 2009