
たとえば
コンピュータでは2-1を補数を利用して計算します。
しかし、繰り下がりの概念があれば以下のように
直接計算できるはずです。
0010
-) 0001
-----
0001
元々コンピュータには、繰り下がりに対応する演算回路が
ないので、引き算が足し算のように簡潔にできない
と思ってよいのでしょうか?
また、掛け算は足し算のループを利用して計算しているのでしょうか?
割り算は、2の補数(ビット反転+1)の引き算をループさせて実現しているのでしょうか?
ということは、計算のうち割り算が一番時間がかかると思ってよいのでしょうか?
No.5ベストアンサー
- 回答日時:
こんにちは。
「引き算が足し算のように簡潔にできない」と思ってよいのでしょうか?
と聞かれたなら、「思ってよい」で正解です。
補数表現を使うことで、人間側で言う「加減算」を
コンピュータ側は全て「加算」で計算できます。
オーバーフローやアンダーフローは除きますが・・・
また、「乗除算」はイメージとしては「ループで実現している」であっていると思います。
回路の作り方にもよるのでしょうが、
掛け算の回路に対して、割り算の回路はおよそ3倍の素子が必要となるらしいとか。
それによって…、処理時間は2倍程度に抑えられているとか。
システム屋さんの世界(いわゆるディープなプログラマ)や、
特に組み込み回路のプログラム設計では
可能ならば割り算を一切使わない、使うとしても処理を独立させたりなどのために
プログラム最適化のための労力の半分を注ぎ込むほどのイメージだとか。
(注意:あくまでも私の偏見的イメージです。)
今時のプログラミングではコンパイラが大半の面倒をみてくれますが、
本当にカリカリチューンなシステムを作りたいなら
どの回路(処理)が、どのくらいの時間をしようするかを把握していた方がわいらしいです。
その最初の一歩が「割り算の回路は処理に時間がかかる」らしいです。
-----
現在の技術なら、減算器を組み込んだプロセッサも実用的かもしれませんが、
一般向けに導入されるだけの価値が、まだ見付かっていないようです。。。
No.4
- 回答日時:
直接引き算を行う回路 (減算器) 自体は存在します. ただ, ほかの回答者も言われているように「効率」を考えると, 減算器を実装す
るよりも加算器を使って 2の補数で引き算をした方が有利である, と.No.3
- 回答日時:
単純に効率の問題だったはずです。
引き算の場合、補数で計算する回路と繰り下がりを実現した回路で、必要クロック数を比較してみて下さい。
補数計算の方が、性能が高いことが分かると思います。
No.2
- 回答日時:
引き算をどう実現するかは機械の勝手で、演算式をどう見るかは人間の勝手です。
機械は機械としてもっとも効率の良い方法で演算を実行するだけです。
繰り上がりのキャリーに対して繰り下がりはボローですね。
概念としてはありますよ。
割り算はソフトウエアで処理しようとすると時間がかかります。
最近ではハードウエア割り算器(回路)などが入っていますので1クロックで処理出来たり、浮動小数点演算なども専用回路に任せる傾向ですね。
かけ算はかなり以前からハードウエア演算器やマイクロコードで書かれたものが使われています。
かけ算も割り算も単純なループで行うと時間がかかります。
プロセッサの能力や命令形によっても異なりますが、一般的にはシフトと加減算を組み合わせて実現します。
メモリ使用量は増えますがテーブル演算方式なんてのもあります。
No.1
- 回答日時:
コンピューターの演算装置の元は半加算器で、これを2つ繋げて全加算器を構成していますが、これが加算しか出来ないので、引き算は2の補数を使っています。
http://wpedia.goo.ne.jp/wiki/%E5%8A%A0%E7%AE%97% …
割り算は多分一番時間がかかると思います。
2の倍数の掛け算でMSB側に1ビットシフト、割り算ではLSB側に1ビットシフトを使っているプログラムがありました。
2の倍数であるかどうかは一番下の桁を参照すればわかりますよね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- ドライブ・ストレージ 「3は「1+1+1」です。」とコンピュータが認識する用語って何ですか? 2 2022/07/17 02:33
- 中学校 割り算を解くのが遅いです。商を見当つけるのが苦手で、計算遅くなってしまっていると思います。どのように 7 2023/04/17 14:34
- 格安スマホ・SIMフリースマホ 今 ahamoを使っていて 4898円以下になる携帯会社があれば乗り換えたいです 20GBと24時間 9 2022/09/27 07:43
- その他(自然科学) 論文のまとめに関して(小論文)添削お願いします。 6 2023/07/16 14:24
- その他(ビジネス・キャリア) 今時の派遣社員って仕事が出来ないだけじゃなく計算も出来ないのか? 8 2022/07/22 20:53
- 数学 『最後の自然数はどんな数か』 3 2023/06/26 20:38
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- 計算機科学 インド式かんたん計算法について 2 2022/06/02 04:27
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2の6乗の答えと計算方法
-
累乗の逆(対数?)の計算方法を教...
-
2500を3対2でわける計算式おし...
-
8÷0=
-
パーセントの計算がまったく出...
-
割り算の説明
-
答えに0が含まれる時の割り算の...
-
Excelで、時間の引き算でマイナ...
-
数3です! lim(n→∞)(-2)^n -2^2...
-
算数
-
AとBの比というのはA/Bの...
-
300÷1.5=200の計算方法
-
cos マイナス1乗
-
割引の計算がよく説明と理解が...
-
高3数学の問題が解けません。...
-
代数和ってなんでしょう
-
中3です。数学の問題です。 一...
-
Excel関数で、Nの1/3乗という...
-
TOEIC715L375R340だったのです...
-
期待値の問題
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2の6乗の答えと計算方法
-
累乗の逆(対数?)の計算方法を教...
-
2500を3対2でわける計算式おし...
-
パーセントの計算がまったく出...
-
8÷0=
-
Excelで、時間の引き算でマイナ...
-
AとBの比というのはA/Bの...
-
「逆数」って、何のためにある...
-
4^0.5乗の答え
-
素因数分解で最小公倍数・最大...
-
割り算の説明
-
a+aの答えがこんがらがってし...
-
この計算はカッコの中の掛け算...
-
Excel関数で、Nの1/3乗という...
-
スマホで累乗の指数や、ルート...
-
代数和ってなんでしょう
-
割引の計算がよく説明と理解が...
-
300÷1.5=200の計算方法
-
~の~乗を計算機を使わずに簡...
-
積の記号
おすすめ情報