タグ

qiitaとプログラミングに関するpongepongeのブックマーク (4)

  • 2で割ることと3で割ること - Qiita

    この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

    2で割ることと3で割ること - Qiita
  • 文科省のPythonはPythonじゃねぇ - Qiita

    TL;DR 文科省によるプログラミングの教材はダメダメ。PEP8読め。 追記 もちろん、この指摘が普通のコードに対するものだとすれば 「重箱の隅をつつきすぎ」 だというのは全くその通りだと思います。こんな指摘をするつもりはさらさらありません。 しかし、これが文科省という権威ある機関が発表するものならば話は全く違います。 全ての日教育を一身に背負うくらいの気持ちと成果を伴わなければならないとも思います。 そういう理由での、厳しい(というか細かい)指摘です。 追記2 自分の説明が足りませんでした(すみません)。ちなみにこの教材は「教員研修用」です。 この教材で研修を受けた教師にプログラミングを教えられると思って考えてみてほしいと思います。 追記3 (2019/9/25 文科省の改訂を受けて) この度文科省がPythonに関する資料の改訂版を発表しました。 文科省に対して改善を求める当初を行

    文科省のPythonはPythonじゃねぇ - Qiita
  • 【2019年4月版】JavaScriptのconsoleがすごいことになってた。 - Qiita

    JavaScript の console がすごいことになっているらしい。 日、以下の記事を見つけました。 Getting creative with the Console API! この記事で紹介されている console のメソッド全然知らなかったのでビックリしましたが、実際にどう表示されるのか載っていなかったのでChromeのコンソールでスクショを取ってみました。 console.log() 文によるとlogメソッド内のテキストリテラルは以下の書式で値のフォーマットと置換ができるそうです。 %o / %O - for objects; %d / %i - for integers; %s - for strings; %f - for floating-point numbers; マジすか・・・ そんなわけで以下のコード console.log("Object value:

    【2019年4月版】JavaScriptのconsoleがすごいことになってた。 - Qiita
  • JavaScriptの { } を理解する - Qiita

    結果はどうなったでしょうか。 自分が今使っているGoogle Chromeだとこうなりました。 結果は{a: 10}というオブジェクトです。まあ、これは当然ですね。3 + 5と入力すれば実行されて8が返ってくるのですから、{a: 10}というオブジェクトリテラルを書けば{a: 10}というオブジェクトが作られるのは当然です。 ……。 ここで、一部の人は「おいふざけんなよ」と思っているかもしれません。というのも、この例は環境によっては違う結果になるのです。具体的には、Chrome以外2のブラウザのREPL(FirefoxやEdgeなど)が該当します。あと、ts-nodeのREPLも該当するらしいです。これらの環境では、結果は{a: 10}ではなく次のようになります。 オブジェクトを作ったはずなのに結果が10とか意味不明ですね。そもそも、こんな簡単なプログラムで結果が全然違うとか、JavaSc

    JavaScriptの { } を理解する - Qiita
  • 1