5−3をする
0011(3)を−3にする
10000-0011をして補数を導き出す。
一応10進数になおす
16ー3は13なので1101になる。
0101+1101をする
10010になる。
桁から溢れたビットは切り捨て
0010(2)になった。
成功!
負数
0より小さい数。
出典 https://kotobank.jp/word/%E8%B2%A0%E6%95%B0-124764
2の補数
次の桁に繰り上がる数に上がるための数
問題
負数を2の歩数で表すとき、全てのビットが1であるんビットの2進数”1111...111"が表す数値又はその数式はどれか。
まず問題の意味がわからなかった。
答えを見た。
"1111...111"が2の補数であった。その2の補数が表すのは次のうちどれかと言うことなのか?
そうすれば答えがわかる。
2の補数を表すためには対象となる数字を反転させてその後に1を足す。
その状態になったのが111111...11であるから
まず1を引く
1111111...0になり、反転させると0000..01になる。
そして負の数だから
−1になるのか。
気づき
補数を少し理解できた。
問題
ある整数値を、負数を2の補数で表現する2進数表記法で表すと最下位2ビットは”11”であった。10進数表記法の下で、その整数値を4で割った時のあまりに関する記述として、最適なものはどれか。ここで助産の章は、絶対値の小数点以下を切り捨てるのとする。
ア その整数値が正ならば3
イ その整数値が負ならば−3
ウ その整数値が負ならば3
エ その整数値の正負にかかわらず0
思ったこと
文の意味がわからなかった。
もう少し読解力を身につけたい。
ある整数値が2進数表記法で負数を表現してあるのか?
それともただ2進数表記法で表現しているの?
負数か負数じゃないのかわからなかった。
あとここで除算の商は絶対値の小数点以下を切り捨てるものとする。
と書かれてあって
正直わからない。
頭がパニックになった。
そのせいもあって匙を投げてしまった。
解説を見た。
整数値を2真数表記法で表しているだけだった。それが...11だった。
仮の2進数で想定して問題を解いていた。
解説では3ビットの2進数を使っていた。
主に111と(ー1)011(3)を使っていた。
これを4で割っていた。
一応それぞれを4で割ると
111(整数は負)は0余ー1、011(整数は正)は0あまり3
アは当てはまっている。
イは合っていない
ウはあっていない
エはー1と3なので余りが0にならない。
気づき
まだまだ問題を解かなくてはダメだな。
問題に慣れていこう。
頑張ろう。
出典 キタミ式イラストIT塾 基本情報技術者 令和03年