タグ

四則演算に関するBowz13のブックマーク (4)

  • 実は足し算しかできない!? 「補数」「シフト」で四則演算しているマイコン

    →「マイコン入門!! 必携用語集」連載一覧 加算(足し算) 最初に最も簡単な加算(足し算)を説明します。 これは10進数と同じ方法で計算します。各桁が加算した後に2になる場合は「桁上がり」が発生し、1桁上の数字に加算します。図1に2進数の[0110]*)と[0011]の加算例を示します。 *)文中では、便宜上、2進数の値を[0]や[1]のように、[ ]で表現します ちなみに、上がった桁のことをキャリー(Carry)と呼びます。逆に上の桁から1を借りてくることをボロウ(Borrow)といいます。よく使いますので覚えておいてください。 減算(引き算) 次に減算(引き算)を説明します。前述したようにマイコンでは直接減算(引き算)を行えません。そこで補数を加えて間接的に減算を行います。 では、補数とは何でしょうか? 補数とは、「その数字に足した時に、桁上がりが起きる数のうち最も小さい数」です。

    実は足し算しかできない!? 「補数」「シフト」で四則演算しているマイコン
  • コンピュータはどのように計算しているのか? - ザリガニが見ていた...。

    コンピュータ(CPU)は単なるスイッチの集合体である。 スイッチのオン・オフを数値の1・0と考えて2進数で計算している。 以上のことは真理かもしれないけど、今イチ現実味がない。そのままでは、CPUの姿は想像できない。単なるスイッチが、その内部でどうやって計算しているのか?もう少し具体的な姿を見るために、調べてみた。 10進数ではない数値 人間が計算すると言ったら、それは当然10進数で計算することになる。 10進数とは、1桁が10の数字によって区別される数値の表現方法である。 0から9まで数えたら、桁上がりして10になる。 ところで、普段はあまり意識しないが、時計は12進数と60進数が組み合わさった数値の表現方法である。 ストップウォッチが付属していると、10進数も関係している。 あるいは、曜日は7進数的な表現方法と言える。(桁上がりは、ないけど) 1年は12ヵ月あり、12進数的である。 さ

    コンピュータはどのように計算しているのか? - ザリガニが見ていた...。
  • 【5分で覚えるIT基礎の基礎】あなたは論理演算がわかりますか? 第3回

    矢沢 久雄 グレープシティ アドバイザリースタッフ 連載の第1回で,コンピュータを構成するICの中に論理演算を行う論理回路が入っていることを説明しました。連載の第2回では,論理演算の用途として,マスク,セット,反転があることを説明しました。ここで疑問に思ってほしいことがあります。それは「どうやらコンピュータは,ハードウエア的に論理演算しかできないようだ。それでも,コンピュータで加減乗除の四則演算ができるのは,なぜだろうか?」ということです。実はコンピュータは,論理演算を組み合せて四則演算を行うのです。今回は,その仕組みを説明しましょう。 ●シンプルな半加算回路 コンピュータは,内部的にすべてのデータを2進数で取り扱います。そこで,2進数で四則演算を行う方法を考えてみましょう。まずは加算からです。2進数の1けた(0または1)で加算を行うと,その結果は表1[拡大表示]のようになります。ここでは

    【5分で覚えるIT基礎の基礎】あなたは論理演算がわかりますか? 第3回
  • 足し算を使わずに足し算する — KaoriYa

    int add(int a, int b) { while (b != 0) { int c = (a & b) << 1; a ^= b; b = c; } return a; } はい。この関数では足し算(演算子)を使わずに、ビット演算とループだけで足し算(加算)を実現しています。いわゆる全加算器ってやつで、これと同じ事が電気回路的に行われるのがCPUにおける足し算(演算子)です。 ざっくり解説しますと、一時変数cには各桁のキャリーを計算しています。キャリーはこんな真偽値表なので、 abc

  • 1