コンピュータのメモリにはデータを管理するために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ビット)単位ごとに


アドレスをつけてデータを管理しているのですね。」



  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る