LoginSignup
1
0

More than 3 years have passed since last update.

一問一答 [参考]プログラムはなぜ動くのか

Posted at

■問題、banayad回答
①プログラムとは?
コンピュータに与える処理の流れを書いたもの

②プログラムの中には、何が含まれている?
機械語?

③マシン語とは何?
コンピュータが直接実行できる単位。バイナリコードで拡張子は.exeとか。

④実行時のプログラムはどこに格納されているか?
ヒープ領域?一時メモリー?

⑤メモリーのアドレスとは?
データが格納されている領域の番地

⑥コンピュータの構成要素の中でプログラムを解釈・実行する装置は?
CPU

⑦32ビットは何バイト?
4バイト

⑧01011100という2進数は10進数でいくつ?
92

⑨00001111という2進数を2桁左シフトすると元の数を何倍したことになるか?
4倍

⑩補数表現で表された8桁の2進数11111111は10進数ではいくつか
-128

⑪補数表現で表された8桁の2進数10101010を16桁の2進数で表すと?
1111111101010110

⑫グラフィックスパターンを部分的に反転させるためには、何という論理演算を使うか?
XOR


■模範解答、補足
①OK

②命令とデータ。
プログラムは命令とデータの集合体。C言語の「printf("こんちわ")」というプログラムなら、
printfが命令で"こんちわ"がデータ。

③CPUが直接解釈できる言語。コンピュータとCPUの違いは明確にしておくべき。
マシン語命令の主な種類と機能は下記。
データ転送命令
演算命令
ジャンプ命令
コール・リターン命令

④メモリー(メインメモリー)。
ハードディスクなどのディスク媒体に保存されたプログラムは、
メモリーにコピーされてから実行される。
メインメモリーは通常、DRAMと呼ばれる読み書き可能なチップが使われる。電源をきると内容が失われる。

⑤OK。正確にはメモリー上で命令やデータが格納されている場所を示す値。

⑥OK

⑦OK

⑧OK

⑨OK

⑩-1。補数とはプラスの値でマイナスの値を表す。
補数は反転して+1。
+1→00000001
-1→11111111
これらを足すと0になることがわかる。100000000(9桁目は桁あふれ)

⑪1111111110101010。

⑫OK

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0