今回やっていくこと
エンジニア未経験かつ前提知識ゼロの人間が基本技術者試験に受かるための勉強の軌跡を残していきます。
まずはそもそもA試験、B試験とはなんぞやという状態であったため、そこを調べることから始めることにしました。
科目A試験...テクノロジ、マネジメント、ストラテジ系からの出題
科目B試験...アルゴリズム・プログラミング、セキュリティからの出題
らしいです。
なので、まずは当分科目A試験のテクノロジから勉強することにしました。
この記事は、勉強したことを自分なりにまとめたものを残しておくといった方針で書いていこうと思います。
テクノロジー基本理論
基本的にA試験は某道場を用いて勉強していこうと思います。
出てきた問題に対してわからない場合、それについて調べていくといったスタイルで勉強していきます。
2の補数、負数
某道場で問題を解いていたところ、第一問は高校数学の場合の数で対応できるような問題であったのですが、突然”補数”、”負数”といった言葉が出現して混乱してしまいました。
それらの用語について簡単に言うと、
補数 | 負の数を正の数で表したもの |
負数 | 負の数そのもの |
といった具合です。
ここでなんでわざわざ補数という概念を使うのか?といった疑問が真っ先に出てきました。
以下に補数について自分なりの解釈をまとめてみました。
例えば1010110の補数の絶対値を求めよ、といった問題が与えられた場合、
マイナスの表現を使わずに負の数を表したいことになります。
では負の数について考えてみると、負の数とはその絶対値と等しい正の数の話に関する単位元と考えることができます。
例えば3という数の負の数-3について
3 + (-3) = 0
ということが成り立つため、足してゼロになる数が負の数であることが言えます。
では、10101110について同様に考えていきましょう。
\begin{align}
10101110 + (01010001 + 00000001)
\\= (10101110 + 01010001) + 00000001
\\= 11111111 + 00000001
\\= 100000000 = 00000000
\end{align}
無事ゼロにすることができました。最後の式は今8桁の範囲で考えているからゼロとしています。
したがって、01010001 + 00000001 = 01010010が補数の絶対値になるということです。
よく解説などに0と1を反転させて1を足す、といったような説明は最初は意味不明だったのですが、こう考えるとわかりやすいかもしれません。
まとめ
今回の記事は短いですが、ここまでとします。
誰も読まないとは思いますが、何か間違っているところの指摘やアドバイスなどあれは非常に助かります。
これからエンジニアになるための行動や勉強などを記録していきますので、どうぞよろしくお願いいたします。