[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
この機能を使うにはJavaScriptを有効にしてください
|
レス数が900を超えています。1000を超えると投稿できなくなるよ。
科学と疑似科学とを判別する
838
:
Ken
:2021/02/13(土) 20:04:01 ID:l3c2r2bk
基本中の基本ですが、コンピュータ・プログラムの中で何かが存在するとは、それを表すデータが存在することです。より詳しく言うと、メモリやハードディスクのような記憶媒体の一部が、そのデータに相当する状態になることを意味します。
例を挙げましょう。重力加速度をいろいろ変えてシミュレーションを行なうなら、最も一般的な方法は、プログラムを書く中で重力加速度を表す変数を定義し、その変数の値を変えることです。変数の定義には、まず名前を決めます。重力加速度なので、ここは「g-kasoku」としましょうか。
名前だけでなく、変数の「型」と「大きさ」も定義します。重力加速度を「10」や「5」のように整数で表すなら整数型の変数だし、「9.81」のように小数点以下まで表すなら小数型(浮動小数点数といいますが)になります。
「大きさ」とは変数の値の大小ではなく、その変数が表せる数値の範囲です。大きさが1バイト(8ビット)の整数なら、2⁸ = 256だから256種類の整数つまり0から255までを表せる変数になります。2バイトなら0から65535までが範囲ですね。
注:ただし、変数の「型」と「大きさ」をプログラマが自分で定義できるかは、プログラミング言語で異なり、1980年代頃まで多用された昔のBasic等ではできなかったと思うのですが、それでも見えないところでコンピュータが定義しています。
g-kasokuを1バイトの整数として定義すると、g-kasokuのデータを入れるメモリ領域はオン・オフを切り替える8つの電気スイッチで構成され、オンは2進法の1を、オフは0を表します。もし重力加速度が10m/s²、つまりg-kasokuの値を10にするなら、このメモリ領域は10を2進法で表した「00001010」、つまりオフ4つの後にオン・オフ・オン・オフと続く状態になります。プログラムはg-kasokuを表すメモリ領域を参照し、「00001010」の状態になってることを知り、それを「10」と解釈し、重力加速度が10m/s²という条件で計算をするのです。
もう1つ大事な点があります。g-kasokuの内容を参照するには、メモリ全体の中で、g-kasokuがどこにあるかの情報が必要です。メモリの中の特定の場所を「メモリ・アドレス」といいますが、プログラムが走ると、g-kasokuのメモリ・アドレスもコンピュータが記憶します。多くのプログラミング言語は、変数のメモリ・アドレスまではユーザに見せませんが、C言語のような一部の言語ではメモリ・アドレスも見えるし利用可能です。メモリ・アドレスを表す変数を、プログラミングの世界では「ポインタ」といい、C言語なら、g-kasokuのポインタは先頭に「&」を付けて&g-kasokuと表記します。ややこしいかもしれませんが、ポインタは後で重要な意味をもつので、必ず理解してください。
例えば、メモリの「3790」のアドレスにg-kasokuのデータがあり、そのg-kasokuの値が「10」とします。プログラムはg-kasokuに対応するポインタの値が「3790」と知り、そのアドレスのメモリ内容を参照し、そこの値が「10」と知るわけです。上の例では、
&g-kasokuの内容は「3790」
g-kasokuの内容は「10」
になります。
これ以降の説明を読むには、今回の投稿内容の理解が必要条件です。
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板