フォト

アクセス

  • Br_decobanner_20100702162006_4

落し物

  • ふーにゃんは恋人

  • 金魚
  • ちょっとしたゲームです。
無料ブログはココログ

« 6.35PRO-AでRESTART VSHとSUSPEND DEVICEを実装! | トップページ | 6.35PRO-A1がリリース! »

2011年2月10日 (木)

メモリースティックの表示容量と認識容量で差が生じる理由(改)

買ったばかりのメモリースティック(以下MS)なのに、PSPで認識したらパッケージの表示よりも容量が少ない!

こう思った事はありませんか?

今回は表示容量と認識容量で差が生じてしまう理由を紹介します。

201129152032

前も記事で紹介した事があるのですが、若干説明が間違っているそうなので調べ直しました。

と言う訳で改めて紹介します。

初にByte数の単位がどう繰り上がるのかはご存知ですよね?

そう、1000Byteで1KB、1000KBで1MB・・・と繰り上がっていきます。
1000Byte→1KB
1000KB  →1MB
1000MB  →1GB
1000GB  →1TB

一般的な単位でもキロやメガを同様に扱いますからこんなのは常識ですね。

これが勿論MSの表記容量で使われている換算方法です。

でも、認識容量だと違うんです。

Byteを扱う、特にメモリに限っては単位が1024で繰り上がります。

つまり1024Byteで1KB、1024KBで1MB・・・と繰り上がっているのです。
1024Byte→1KB
1024KB  →1MB
1024MB  →1GB
1024GB  →1TB

そうすると1KBにつき24Byteずつ差が出てきます。

分かり易いのが販売されているMSの容量です。

MSの容量は
16MB→32MB→64MB→128MB→256MB→512MB
┌────────────────────┘
└→1GB→2GB→4GB→8GB→16GB→32GB

と大容量化が進んでいます。

でもよく見てみれば、512MBと1GBの間で24MBの差が生じていまね?

勿論ですがB→KB、KB→MBでもズレは生じているので24MBだけの差ではありません。

これがタネだったのです。

だ、敢えて言っておきますが1000換算が間違っている訳ではありません

1000単位の数え方も1024単位の数え方も存在するのです。

これがByteのややこしい所。

元々はメーカーが人間にとって分かり易いってことで1000換算を採用していたのですが、大容量化が進み差が大きくなってきてしまったのが原因みたいです。

メーカーも今更1024単位に変更できませんし、何より容量が大きく見えるので変えるつもりもないでしょう。

なみに、1024で繰り上がる方の表記は*Bではありません。

何故なら1000単位なのか1024単位なのか区別がつかないからです。

正しい表記方法は↓のようにBの前にiを付けたモノです。

1KiB(キビバイト)
1MiB(メビバイト)
1GiB(ギビバイト)
1TiB(テビバイト)

まぁ普段の生活で使う事は無いのでこれはマイナーです。

そんな訳でズレが生じる理由はお分かり頂けたでしょうか?

・・・何で1024なんて中途半端な数字かって?そういう物だからだよ~

言ってしまえば楽なんですけど、それだと記事にする意味が無いのでもう少し掘り下げて説明します。

ず、プログラムでは2進数が採用されています。

2進数は0か1か、私達で言えばYESかNOかで処理することが出来ます。

それから単位にはByteやKBの前にBitがあります。

これが情報を容量で表した時の最小単位です。

そして8Bitで1Byteになります。

こで少し想像をしてみて下さい。

・・・貴方の前に一つの部屋があります。

1

その部屋の扉の上にはランプが付いています。

2

このランプが光っていれば中に人がいる、つまり使用中です。

この使用中か使用中で無いかを表すランプが1bitです。

つまり0か1かの2つだけの情報量です。

でもこれだけでは中に入っている人の性別が分かりません。

そこでランプを一つ増やしてみましょう。

3

両方点いていなければ誰も入っていません。

右が点いていれば男性が、左が点いていれば女性が入っています。

両方点灯の場合は判別不能な性別の方が入っています。

つまり0を消灯、1を点灯とすると

左←   →右
0        0 「中に誰もいませんよ?」
0       1 「男」
1       0 「女」
1       1 「unknown」

となります。

これで情報を4つ表示することが可能となりました。

これが2bitの情報量です。

では成人か未成年かを見分けるためには?

勿論更にランプを足せばOKです。

000は未使用
001は未成年の男性、010は未成年の女性、011は未成年の性別不明
100は成人の男性、101は成人の女性、110は成人の性別不明
111は年齢不詳の性別不明

これで8つの情報を表示可能となりました。

これが3bitの情報量ですね。

これを「人数は?」「地域は?」と情報を増やす場合も同じくランプを増やせばOKです。

この調子でいけば4bitが2^4で16の情報を、8bit(つまり1Byte)が2^8で256の情報を表示することが可能ですからね。

は変わりますが、皆さんは1Byte文字や2Byte文字を御存知でしょうか?

一般的には半角文字が1Byteで、全角文字や平仮名・漢字が2Byteとなっています。

日本の場合は半角文字と言うと数字の0~9にアルファベットの小文字と大文字、それから半角カタカナと!や?等の記号で合計158文字となります。

日本は記号がバックスラッシュ\が\(円記号)に、チルダ˜が‾(オーバースラッシュ)なっていますけどね。

他にも\と‾を含めた#$@[]^{|}~の12種類の記号は国の事情によって変更されるだとか、実は半角は元々7bit(128文字)だとか、それに伴い半角カタカナ問題が生じたとか色々ありますが、それを書くと記事が馬鹿みたいに長くなるので止めておきます。
※既に長いですけどw

で、158種類の文字なら256の番号で割り振ることが可能と言う訳です。

なので半角文字は1Byte。

では全角はどうでしょう?

漢字だけでもPCで表示出来る文字が6355字あります。

仮に漢字を抜いても「、。○×□△」と言った記号で147、平仮名と片仮名で169と8bit256文字では表わしきれません。

そこで2Byte(16bit)使用して65536も表示を可能にしました。

6877種の2Byte文字はこれで収拾がついた訳です。

談ですが、2Byte文字の余ったスペースに当て嵌めたメーカー独自の文字が存在します。

㈱や㌔等の変換時の補足部分に「環境依存文字」と書かれているのがそれです。

Ws000057_2

を戻しますが、こういう訳でコンピュータでは2進数が使われています。

さて、容量が大きくなると桁も大きくなります。

GBとなると16,483,753,984なんて10桁以上になってしまいます。

普段使うには少し厳しいですね。

でも㌔や㍋を使って区切れば問題ありません。

じゃあ早速1000単位で区切ろうか・・・と言うと2進数に直した時に中途半端な数字でコンピュータにも技術者にも優しくありません。

そこで2^10とコンピュータで扱い易く、且つ1000に近い1024の数字で区切られるようになりました。

これが1024単位である理由です。

これで説明は以上です。

ここまで読んで頂きありがとうございました。

クリックお願いします!

Br_decobanner_20100702162006_4

おまけ

1000→1024の換算方法と、MSの大体の容量を書いておきます。

1KBが1024なので、1000/1024で0.9765625となります。

つまりKBをKiBに直す時はx(KB)*0.9765625で出ます。

MBの場合は更に0.9765625を掛けるので、x(MB)*0.9765625^2となります。

GBも同じように更に掛けてx(GB)*0.9765625^3、TBもx(TB)*0.9765625^4です。

公式にするとxを容量、nをKBやMBの単位として

x*0.9765625^n

となります。

これで計算したMSの容量は以下の通りです。

・16MB≒15.26MiB

・32MB≒30.51MiB

・64MB≒61.04MiB

・128MB≒122.1MiB

・256MB≒244.1MiB

・512MB≒488.3MiB

・1GB≒0.931GiB

・2GB≒1.863GiB

・4GB≒3.725GiB

・8GB≒7.450GiB

・16GB≒14.90GiB

・32GB≒29.80GiB

ただしこれは暫定です。

実際には*GBピッタリでは無いので多少は異なります。

私の16GBのMSは「16,483,753,984Byte」で15.3GiBとの事。

Ws000056_2

16,483,753,984*0.9765625^3で計算すると15.351692119970703125と、確かに訳15.3GiBですね。

16,000,000,000なら先程の14.9GiBとなるのですが・・・

ちなみにこの画像のMSはデータを全て消してあります。

なのに使用領域に8KB使われています。

これは8192Byteはディスク管理情報ですね。

教室(容量)があっても机(管理情報)が無ければ使えませんから。

・・・この8192を2進数、8進数、16進数に変換してみると?

これはWindowsの電卓の関数電卓機能を使って調べてみて下さい。

システム上ではキッチリした数字である事が分かると思います。

ここまで読んで頂き、本当にありがとうございました。

クリックお願いします!

Br_decobanner_20100702162006_4

« 6.35PRO-AでRESTART VSHとSUSPEND DEVICEを実装! | トップページ | 6.35PRO-A1がリリース! »

PSPの知った方が身のため知識」カテゴリの記事

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1202258/38817628

この記事へのトラックバック一覧です: メモリースティックの表示容量と認識容量で差が生じる理由(改):

« 6.35PRO-AでRESTART VSHとSUSPEND DEVICEを実装! | トップページ | 6.35PRO-A1がリリース! »

ツイッター

サイト内検索

偉大なるリンク様

  • Web Xing
    PCやゲームの最新情報を色々と
  • PC Tool One
    知っている方も多いと思いますが、VersionTextToolを開発しているLIGHT様のサイトです。 人気のゲーム・アプリ・PC・PSPについて紹介しています。 開発技術を活かしてプログラミング講座なんかも開いています。
  • Perfect Evolution
    壁紙を多く配信しているサイト様です。 壁紙以外にもPCツールやPSP関連情報も扱っています。
  • 痛PSP化計画
    サイト名の通り、痛PSP化するための型紙を作成&配布されているサイト様です。 完全に痛くするために壁紙の配布を行う場合もあります。
  • PSP-MAX
    CFW関連情報サイトです。 あまり知られていない情報も扱うことがあるので、オススメです。
  • NET + GAME GALAXY
    PSP関係の記事が豊富です。 CFWユーザーにはオススメのサイト様です。
  • ゲーム失速注意報
2017年7月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

広告