ソフトウェア視点とハードウェア視点
最近、基本情報の勉強をしていて、その講座の中に下記の問題があった。
■問題
多くのコンピュータで、負の数の表現に補数を用いている理由を100字以内で述べよ。
私は
「足し算と引き算をしやすくするため」
と回答したら、
“新たな回路を作る必要がなくなり、演算の仕組みを簡素化することができるってことを付け加えてほしい」
って返答が来た。
どうして急に回路の話題になる????
私は、2進数の計算なのに、なぜ急に回路の話になるのか?とパニックになった。
・回路を関数に置き換えるとわかりやすい
・C = add(A, B) とC = subtract(A, B) という加算用と減算用の関数(回路)を別に作るのは超負担だし、応用も効かないよね。
・complement(B) という2の補数に変換する用の関数(回路)は、入力の変換に過ぎないから計算コストがあまりかからないよね。
・だから、C = add(A, complement(B)) という加算用の関数(回路)一個で済むから汎用性が広がるし、計算コストも減らせるよね。
という話らしい。回路を関数に変換させるだけでこんなにしっくりくるなんてびっくりしたし、これがどれだけ重要なことかって理解できた。
ChatGPTがいるからこそ、理解が深まった。
人間相手だと、「ここで回路の話が出てくるのが納得いかない。」というしょーもない引っ掛かりがあっても、「つべこべ言わずにそんなもんだと思って理解しろ」で終わるじゃん。
ChatGPTがいることで、私の引っ掛かりにちゃんと向き合ってくれることが嬉しいし、そこがかなり重要なポイントだったりすることを実感した。
一方で、ChatGPTは使い方を間違えると答えを全て言ってしまうデメリットもあるので、答えに直接繋がらないような質問内容を考える必要性を感じた。
ソフトウェア視点とハードウェア視点
基本情報問わず、IT系の試験は、ソフトウェア視点とハードウェア視点がごっちゃになっちゃってるから分かりにくい一面もあるのかもしれない。
特に私(WEB屋)のような片方の専門家だと、本を読んだだけだと断片的な知識が並んでいるだけで、この内容がどれだけ重要かがピンとこないことが多いんだなって感じた。
丸バツだけで回答するだけでは得られない知識って、かなり多いんだなって思ったし、いろんな視点で物事をみる重要さを学んだ。