コンピュータのメモリにはデータを管理するために1バイトごとにアドレス番号がつけられています
ソーラー「1キロバイトは1024バイトと考える場合
1キロバイト(KB) ⇨2の10乗=1024バイト
1メガバイト (MB) ⇨2の20乗=1048576バイト
1ギガバイト (GB) ⇨2の30乗=1073741824バイト
となります
となると
もし自分の持っているパソコンのメモリ容量が
8ギガバイトなら
1073741824×8=8589934592バイト
のメモリ容量をもつことになります
そして
cout << 'a'<<"\n";
が実行されると
文字データ'a'に対応する1バイト(8ビット)のデータ量の
01100001(10進数では97)
が
8ギガバイト
8589934592バイト
のメモリのどこかに格納され、
その01100001を利用して
文字aがコマンドプロンプト画面に表示されます
さあ、ここで問題です
どうやってコンピュータは
その1バイトのデータ量の01100001を
8ギガバイト
8589934592バイトのメモリの中から探し出し
利用しているのでしょうか?」
ぶーにゃん「あ、明日に向かって探しているにゃん」
マックス「あ あ スーパーでバイトしながら
探すんだろう!」
ソーラー「意味のとらえ方が微妙に違いま~~す。」
マックス「メモリのデータ格納容量8589934592バイト
は
85億8千9百93万4千5百92バイト
その中から
1バイトのデータ量の01100001の格納された
場所を探し出す・・・
よくコンピュータは探し出してるな
難しくないか?」
ソーラー「実は
コンピュータのメモリには
1バイトのデータ容量ごとに
番号がつけられています
たとえば(□□□□□□□□は8ビット、1バイトのメモリのお部屋を表しています)
□□□□□□□□ 10000000👈メモリにつけられた番号
□□□□□□□□ 10000001
□□□□□□□□ 10000002
□□□□□□□□ 10000003
□□□□□□□□ 10000004
□□□□□□□□ 10000005
□□□□□□□□ 10000006
という具合にです
□□□□□□□□ 10000000
□□□□□□□□ 10000001
01100001 10000002
□□□□□□□□ 10000003
□□□□□□□□ 10000004
□□□□□□□□ 10000005
□□□□□□□□ 10000006
と
01100001がメモリに格納されたならば
コンピュータは
10000002という番号を使って
01100001を探し出して利用しています。」
マックス「8ビット=1バイトのデータ容量
ごとに
番号がつけられているのか・・・」
ソーラー「その10000002などの番号のことを
アドレスといいます。
(アドレスとは英語で住所という意味です)
データの格納される住所というわけなんだね
数値データ1は
(2進数で表された場合でも1ですが)
8ビットのメモリのお部屋
□□□□□□□□
に
□□□□□□□1
と格納されているのでなく
8ビットのメモリのお部屋
□□□□□□□□
に
00000001
と格納されています
1だけがそのままメモリに格納されるのでなく
0を1の左側に7つつけた
00000001がメモリに格納されていますね。
このように
コンピュータは
8ビットのメモリのお部屋
□□□□□□□□
ごとに
1バイト(8ビット)単位ごとに
アドレスをつけてデータを管理しているのですね。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます