August
20

JavaScriptでsign関数

sinではなくsign関数です。受け取った数値が正の数か負の数か0かを返します。

まず原始的実装

sign関数は簡単に実装すると以下のようになります。

function sign(n){
    return n===0?0:n>0?1:-1;
}

もう少し短くするとこんなかんじです

function sign(n){
    return n>0?1:n<0?-1:0;
}

多分限界まで短いのはこんなかんじです

function sign(n){
    return n>0?1:n?-1:0;
}

ビットを用いて実装

しかしこれでは味気ないので折角です、ビット整数の知識を用いて書いてみましょう。

まず整数を32ビット符号付き整数に変換します。すると、初めのビットが符号を表すようになります。初めのビットが0なら正の数、1なら負の数となります。

ただ、これでは0も正の数と判定されてしまいます。悔しいですが、私ではこれはビットを用いて判定できないので別処理にします。うまくできそうなんですがね…

function sign(n){
    return !n?0:(n|0)>>>31?-1:1;
}

もうすこしだけ改善。

function sign(n){
    return -(n>>>31)||(n?1:0);
}

短くなりましたが、-を判定する部分以外は普通にやってしまっているので残念ですね。なんとかできそうなのですが…

おまけ: 速度測ってみた

ビットを使わない原始的実装をsign1、ビットを使う実装をsign2とします。計測は以下のコードで行いました(sign関数はそれぞれsign1、sign2に変更して測定しました)。

console.time('sign');
for(var i=0;i<1000000;i=0|i+1){
    sign(1);
    sign(10);
    sign(12345);
    sign(-1);
    sign(-10);
    sign(-1);
    sign(0);
}
console.timeEnd('sign');

結果はどちらも平均5msくらいでほぼ違いがありませんでした。ちょっとsign1が早かったかな、というくらいです。

Comments
特に、オシャレ大好きの皆様には間違いなく注目度MAXのアイテムです。さらに、このヴィトンコピーは素敵だけでなく、履く心地が快適です。試着履きの程度の大変キレイな商品です。しかも、どんな服と組み合わせて、非常に適当です。だから、人気ブランド「ヴィトンコピー」のアイテムは大人気ありますから、お洒落な貴方はこの機会にきっとGETしましょう!高品質スーパーコピーブランド商品専門店
シャネル時計 調整 google http://www.wtobrand.com/prada-bag1.html
シャネル時計 調整 google at 2016/07/23/ 13:52
世界一流ウブロ コピーを愛好する多くの方々にご満足いただけるブランド コピー時計品のウブロ スーパーコピー偽物。
本店が扱ウブロ スーパーコピー品は正規品と同等品質なのブランドコピーの様々を提供してい,代引き偽物販売専門店。
ウブロスーパーコピー
シャネル時計 激安 6畳 http://www.gginza.com/%E6%99%82%E8%A8%88/zenith/index.html
シャネル時計 激安 6畳 at 2016/09/29/ 01:28
2017人気TOPスーパーコピー腕時計専門店。
こういうユニークなコピーブランドは貴方の気質に顕現できるだけでなく、個性と魅力に漂います。
もしできれば、ご来店を期待しています。
世界の一流ブランド品N級の専門ショップ
◆在庫情報随時更新!(*^-^*)
◆スタイルが多い、品質がよい、価格が低い、実物写真 .
◆100%品質保証!満足保障!
2017超人気 スーパーコピー時計超美品
ロレックス オイスター ref.6426 http://kopii.net/products/p1/3/3/index.htm
ロレックス オイスター ref.6426 at 2017/01/01/ 11:55
2017年の新素材-新作
ブランド腕時計、バッグ、財布、小物などでございます専売店
★弊社は「信用第一」をモットーにお客様にご満足頂けるよう
★全物品運賃無料(日本全国)
★不良品物情況、無償で交換します.
★税関没収する商品は再度無料で発送します!
時計 オーバーホール オメガ 大阪 http://giginza.com/brand/list-138.html
時計 オーバーホール オメガ 大阪 at 2017/01/01/ 11:55
オメガスーパーコピー
日本的な人気と信頼を得ています。
安心、安全にお届けします
日本では手に入らない商品も、全て卸売りします。
価格、品質、自信のある商品を取り揃えておりますので
シャネル時計 レディース 人気 10代 http://bagshop78.com/brandcopy-m-31.html
シャネル時計 レディース 人気 10代 at 2017/01/01/ 11:55
エルメス バッグ コピー
スーパーコピー 通販 ネットショップへようこそいらっしゃいませ。今日もよろしくお願いします。
エルメス バッグ コピー
日頃に秋めいてきましたね。
今日は皆様に秋でもおしゃれな装いが決められるファッションコーディネートをご紹介いたします。
初秋ではシャツが一番快適だと思われるなら、中秋では無論シャツにベストが一番おしゃれなコーデに決まっていますね。
今日はラルフローレン コピー品で英国風に溢れる紳士のような格好を装いましょう。
シャネル時計レディース新作 http://kopi356.com/category-69-b0.html
シャネル時計レディース新作 at 2017/01/01/ 11:55
ルイヴィトンコピー品第1店 販売専門店

★真のスーパーコピー品質をお届けするルイヴィトンブランドコピー!
※価値あるブランドスーパーコピー財布、バッグのヴィトンコピー※
■品質重視なブランドコピー商品販売!
★高級品☆┃時計┃バッグ┃財 布┃その他┃
◆★ 誠実★信用★顧客は至上
●在庫情報随時更新!
品質がよい 価格が低い 実物写真 品質を重視
100%品質保証 100%満足保障 信用第一
★人気最新品┃特恵中┃☆腕時計、バッグ、財布、ベルト、靴、帽子、アクセサリー、小物☆
★当店商品送料無料日本全国!

※全物品激安,到着するのは迅速で、安全。
■あなたの訪問のを期待しています!☆ヽ(▽⌒)

会社名称 ルイヴィトンコピーN品第1店
ホームページ上でのご注文は24時間受け付けております
ブライトリング スーパーコピー http://nawane111.com/%e3%82%b9%e3%83%bc%e3%83%91%e3%83%bc%e3%82%b3%e3%83%94%e3%83%bc-25-b0.html
ブライトリング スーパーコピー at 2017/01/01/ 11:55
弊店はスーパーコピー時計N品、
ロレックスコピー時計、パネライレプリカ時計、
シャネルレプリカ時計、ブライトリングレプリカ時計、
ウブロレプリカ時計、IWC コピー時計、
二年以内に人的破壊でない故障は無料で修理をします。
正規品と同等品質のコピー品を低価でお客様に提供します。
安心して購入して下さい。
自身が使用するだけでなく、入学、卒業、誕生日、結婚のお祝い等のギフトにもご利用ください。
シャネル チャンス eau fraiche http://www.bestevance.com/omega/index.htm
シャネル チャンス eau fraiche at 2017/01/04/ 19:52
Hello my name is Natalie Murray and I just wanted to send you a quick note here instead of calling you. I came to your JavaScriptでsign関数: PandaNoir page and noticed you could have a lot more traffic. I have found that the key to running a popular website is making sure the visitors you are getting are interested in your subject matter. There is a company that you can get keyword targeted visitors from and they let you try the service for free for 7 days. I managed to get over 300 targeted visitors to day to my website. http://nightcity25.ru/11a
Natalie Murray at 2017/01/10/ 20:12
This is a memo to the webmaster. I discovered your JavaScriptでsign関数: PandaNoir page by searching on Google but it was difficult to find as you were not on the first page of search results. I know you could have more traffic to your website. I have found a website which offers to dramatically increase your website rankings and traffic to your website: http://qwr.fr/url/1v} I managed to get close to 500 visitors/day using their services, you can also get a lot more targeted visitors from Google than you have now. Their service brought significantly more visitors to my website. I hope this helps!
Sharon Cervantes at 2017/01/14/ 15:31
ブランドコピー品激安通販店
メンズ時計専門店をご覧頂き誠にありがとうございます。
豊富な品数を備えているほか、
その最新作品のコピー品を提供する一方。
超人気高級ウブロ・ロレックス・オメガ・フランクミュラー・カルティエ等提供ブランド時計専門店はお客様がご安心に購入
最高ランクの『スーパーコピー』
N級品のみを扱っており、取扱い販売をさせていただいております。スーパーコピーのスーパーコピー)のスーパーコピー販売

ホームページ上でのご注文は24時間受け付けております
ルイ ヴィトン 時計 ベルト交換 http://kopi78.com/products_bigbrandId_2.html
ルイ ヴィトン 時計 ベルト交換 at 2017/01/17/ 13:03
スーパーコピーブランド通販 ブランドスーパーコピー格安買取

価値あるブランドスーパーコピー財布、バッグのルイヴィトンコピー販売専門店
日本最大級スーパーコピー、ブランド通販、ヴィトンコピー、代引き、レプリカ、財布
激安、卸売り、偽物、シャネル財布、バッグ、時計、代金引換、スーパーコピーブランド専門店販売送料 無料。

ホームページ上でのご注文は24時間受け付けております
ドルチェ&ガッバーナ マフラー http://copysale.net/brand-copy.html
ドルチェ&ガッバーナ マフラー at 2017/01/17/ 13:03
This is a message to the admin. I discovered your JavaScriptでsign関数: PandaNoir page by searching on Google but it was difficult to find as you were not on the front page of search results. I know you could have more traffic to your site. I have found a website which offers to dramatically increase your rankings and traffic to your website: http://nt4.pl/u/84} I managed to get close to 500 visitors/day using their service, you could also get many more targeted visitors from Google than you have now. Their service brought significantly more visitors to my site. I hope this helps!
Sharon Cervantes at 2017/01/18/ 11:08
Hello my name is Alison Hamilton and I just wanted to drop you a quick note here instead of calling you. I came to your JavaScriptでsign関数: PandaNoir website and noticed you could have a lot more traffic. I have found that the key to running a popular website is making sure the visitors you are getting are interested in your subject matter. There is a company that you can get keyword targeted visitors from and they let you try the service for free for 7 days. I managed to get over 300 targeted visitors to day to my site. http://thfox.com/500s
Alison Hamilton at 2017/01/19/ 15:20
ブランドコピー品激安通販店
メンズ時計専門店をご覧頂き誠にありがとうございます。
豊富な品数を備えているほか、
その最新作品のコピー品を提供する一方。
超人気高級ウブロ・ロレックス・オメガ・フランクミュラー・カルティエ等提供ブランド時計専門店はお客様がご安心に購入
最高ランクの『スーパーコピー』
N級品のみを扱っており、取扱い販売をさせていただいております。スーパーコピーのスーパーコピー)のスーパーコピー販売

ホームページ上でのご注文は24時間受け付けております
ロレックス オイスターパーペチュアル デイトジャスト 16233 http://watchkopi.com/protype/list-208.html
ロレックス オイスターパーペチュアル デイトジャスト 16233 at 2017/01/24/ 05:17
This is a message to the webmaster. I came to your JavaScriptでsign関数: PandaNoir page by searching on Google but it was hard to find as you were not on the first page of search results. I know you could have more traffic to your website. I have found a website which offers to dramatically improve your website rankings and traffic to your site: http://www.prestonkincaid.com/link/15 I managed to get close to 500 visitors/day using their services, you could also get many more targeted visitors from search engines than you have now. Their service brought significantly more visitors to my website. I hope this helps!
Maria Anderson at 2017/01/25/ 17:52
This is a comment to the admin. I discovered your JavaScriptでsign関数: PandaNoir page by searching on Google but it was hard to find as you were not on the first page of search results. I know you could have more traffic to your site. I have found a site which offers to dramatically increase your website rankings and traffic to your site: http://www.prestonkincaid.com/link/15 I managed to get close to 500 visitors/day using their services, you can also get a lot more targeted traffic from Google than you have now. Their service brought significantly more traffic to my website. I hope this helps!
Maria Anderson at 2017/01/29/ 11:31
This is a comment to the admin. I discovered your JavaScriptでsign関数: PandaNoir page by searching on Google but it was hard to find as you were not on the front page of search results. I know you could have more traffic to your site. I have found a company which offers to dramatically increase your rankings and traffic to your website: http://www.prestonkincaid.com/link/15 I managed to get close to 500 visitors/day using their services, you could also get many more targeted visitors from Google than you have now. Their service brought significantly more traffic to my site. I hope this helps!
Eva Carlson at 2017/02/03/ 22:08

Leave a Reply

Name *

Mail

URL

Comment *

トラックバック URL

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。