質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

Q&A

解決済

2回答

2127閲覧

コンピューター 2進数の割り算について

hello_space

総合スコア24

基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

0グッド

1クリップ

投稿2020/06/01 12:12

基本情報技術者の勉強をしています。
その中でコンピューターは足し算しかできないとの解説がありました。
引き算を2進数の補数を足すことによって実現しているとのことでした。
ここまでは理解したのですが、その後、同じ本の内容で割り算をするときは内部的に引き算をしているとの解説があり混乱してしまいました。
これは割り算をする過程の中で補数の足し算をしていると解釈してよろしいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/06/01 20:14 編集

「足し算しかできない」というのがすでに不正確で、論理回路の基本はビット演算 (AND, OR, NOT) で、それらを組み合わせて足し算や 2 の補数が作られて、それを組み合わせて引き算が作られて…、といった感じでは。
hello_space

2020/06/02 07:12

そうですね。足し算しかできないではなく足し算しか知らないと書いてありました。こちらは私の勘違いでした。すいません。 論理回路も関わってくるのですね。まだまだ勉強不足なのでもう少し読み進めていきたいと思います。 ご回答ありがとうございます!
ikadzuchi

2020/06/02 14:07

「足し算しかできない」でも「足し算しか知らない」でも同じことです。 「引き算は2の補数と足し算で実現されているからCPUは引き算を知らず足し算しか知らない」と言うのであれば、 「足し算はANDとORとNOTで実現されているからCPUは足し算を知らずANDとORとNOTしか知らない」とも同様に言えてしまいます。 CPUは引き算ができると考えてもよいし、CPUは足し算しかできないので割り算をする時には補数の足し算をしていると考えてもよいです。
hello_space

2020/06/02 14:13

なるほど。だいぶすっきりしてきました! 足し算はANDとORとNOTで実現されているんですね! そこの理解からまずはしてみようと思います。 ありがとうございます!
guest

回答2

0

ベストアンサー

これは割り算をする過程の中で補数の足し算をしていると解釈してよろしいのでしょうか?

そうかもしれませんし、そうでないかもしれません。コンピュータ次第です。最低限、それでも可能ではありますが、他に方法がないわけでもありません。

例えば、手計算(筆算)で割り算をするとき、どのようなことをしますか?

少なくとも、掛け算と引き算ができないことには割り算はできません。裏を返すと、これらの組み合わせて割り算を実現することができます。

例えば、電卓で割り算をするとき、どのようなことをしますか?

ボタンたたくだけで計算できます。中でどのような計算がされているかは分かりません。筆算みたいに掛け算と引き算を組み合わせているのかもしれませんし、特別な専用計算回路(ハードウェア)があるのかもしれません。

###そもそも引き算の実現方法ですら1つではないです
マイナスの値を加算しているのかもしれませんし、加算回路とは別に減算回路があるかもしれません。

投稿2020/06/01 12:46

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hello_space

2020/06/01 12:57

ご回答ありがとうございます。ケースバイケースなんですね! 補数を足すのは1つのケースとして、もう少し柔軟に考えてみるようにします。 ベストアンサーは迷ったのですが、より詳しく書いていただいた方にベストアンサーを付けさせていただきました。 回答していただいた方ありがとうございました!
guest

0

8080の時代から引き算命令はあります。
まあナカミみたら、単に符号変換して足し算してるってことだけかもしれませんが

で、その割り算命令というのも、足し算命令で構成されているというオチですよ

投稿2020/06/01 12:23

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問