広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English
 

番外編 その30
固定長と可変長

もおっ、この子
ブラックリスト
入り決定!
データの「桁」の
管理の形式には
固定長
可変長がある。

データの用途に応じて
桁の長さをどう管理するか
使い分けする
んだ。

プログラムでもちょこちょこ
出てくるからね。
ついでに覚えとこう。
 
桁を管理するんだ。

うーん、どんなこと
するのかな?
  お腹真っ黒の
なぽちゃんも
いっしょにね!
 
 

固定長と可変長
 
・固定長
・パディング
・固定長の特徴
・可変長
・可変長の特徴
可変長、固定長のまとめ
 


てめー

誰が腹黒じゃー
ふーんだ。
いつも自分で
言ってるでしょー

お腹の中
見てみればー


ぎゃっ!

やっぱり
刺身にされちゃう!

エビといっしょに
召し上がれ!
もういいからー

ちゃんとやってー

  固定長

 
固定長のイメージ
 
 
名前 年齢(3桁)
Aさん   3 5
Bさん 1 0 3
Cさん     4
Dさん   8 8
 
固定長の場合、
データの桁は最初に決めた桁数で固定。
常に一定の桁幅になる。
 
例の「年齢」データの場合、桁は常に3桁。
値が1桁、2桁の場合も3桁分予約している。
 
 
固定長
桁の数が固定された形式。

つまり、データの長さが
最初から決まってるんだ。
きりりっ  
俺の名前は
ちゃんとくん。
はいはい。
この場合だと、3つの
青い箱に各桁の数字を
入れる感じなんだね。

無いとこは空箱なんだ。

  パディング

 
パディングのイメージ
 
 
名前 年齢(3桁)
Aさん 0 3 5
Bさん 1 0 3
Cさん 0 0 4
Dさん 0 8 8
 
空いている桁を特定の値で埋めること
ゼロや空白文字(スペース)などで埋める場合が多い。
 
例の「年齢」データの場合、空いている桁を0で埋めた。
「年齢」データの桁が揃い、3桁の固定長なのが
分かりやすくなった。
 
 
プディング
じゃないよ。
プディング
じゃないんだ。
データが数字の場合
空いてる桁を0で
埋めたりする。


埋めると桁が揃って
扱いやすくなるからね。

この空いた桁を
埋めることを
パディング
と言うよ。


名前覚えといて。
 
空箱を0で埋めちゃうんだ。

最大が3桁だって分かり
やすくなるね。
 

  固定長の特徴

固定長形式の
メリットとしては・・・

桁の数が揃って、加工や
チェックがしやすくなる。

プログラムでも桁数が
バラバラよりずっと処理を
しやすくなる。
桁の数が決まってれば
システム間でも連携
しやすいね。
電話番号とか固定長
なんだ。
申込用紙とかにこんな
四角並んでるね。

みんな桁が同じだから
分かりやすいかも。
変な例だけどー

データベースで
使うとか考慮
してないからね。

ひとりごと。。。
???
 
 
固定長のメリット
 
 
桁数が分かっている
 
管理・整理しやすい
桁が揃っているので、見やすく管理しやすい。
システム間でデータを共通の体系に揃えやすい。
電話番号
0 9 0 - 9 × × × - 5 5 7 7
0 8 0 - 7 × × × - 2 2 1 1
0 9 0 - 3 × × × - 8 8 9 9
0 7 0 - 5 × × × - 1 1 6 6
 
 
チェックしやすい
桁数が分かっているので特定の桁のチェックがしやすい。
【例:年齢のチェック】
先頭の番号が「1」の人を数えて100歳以上の人が何人いるか調査する。
名前 年齢(3桁)
Aさん 0 3 5
Bさん 1 0 3
Cさん 0 0 4
Dさん 0 8 8
 
 
加工しやすい
桁数が分かっているので特定の桁のチェックがしやすい。
【例:商品番号のチェックと加工】
先頭から4桁目の番号が「1」の商品は、不人気の商品。
先頭から5桁目の削除フラグ番号を「1」にして削除済みにする。
商品番号(5桁) 商品名
1 0 5 0 0 かわいこちゃん人形
2 8 2 1 0 ことちゃん人形
6 9 8 7 0 なぽちゃん人形
8 0 1 1 0 ビッグことちゃん人形

上記は説明のための例です。実用的ではありません。
一般的に商品番号に削除フラグなどは入れません。
 
 
例では、データの型(整数型や文字列型など)を考慮しない。


「1」の商品が

・・・不人気?
「7」の間違い
でしたー。


まあ、無駄があるかは
ソフトの実装にも
よるけどね。

今は基本的な
考え方を知ってね。
固定長のデメリットとしては・・・

当初の想定以上の数になった
場合、溢れてしまう。

かと言って、多く桁を取りすぎても
無駄が出るし、管理しづらくなる。

最初に「何桁にするか」決めるのが
重要になってくるね。

つまり、設計が重要。
 
そっか、桁が少なすぎても
多すぎてもだめ
なんだ。

バランスが大切なんだね。
よく考えて作らないと。
   
 
 
 
固定長のデメリット
 
 
最大桁数の変更がしにくい
 
桁数が足りなくなる
想定より値が大きくなった場合、桁不足でシステムが破綻する。
【例:商品番号の不足】
3桁固定の商品番号の場合、商品が999個より多くなった場合、桁が足りなくなりシステムが破綻する。
  商品番号(3桁) 商品名
  ・・ ・・ ・・ ・・・
  9 9 8 コロコロ飴ちゃん
  9 9 9 フトメンテうどん
1 0 0 0 ×
 
 
桁数の無駄が出る
必要以上に桁数が多すぎても管理しづらくなり、使わない桁で無駄なリソースを消費する。
【例:住所の登録】
住所の長さは、地名や番地によって長さが大きく異なる。そのため固定長では予め大きめにとっておく必要あり、無駄が発生しやすい。
(例では文字列を左詰め。)
名前 住所(最大12桁(12文字))
Aさん            
Bさん    
Cさん              
・・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・
 
ゆとりのある、無駄のない設計が必要になる


参考までに言っとくと・・・

この桁数の問題の代表例は、
大騒ぎになった「2000年問題」だね。


この問題は古いシステムが
西暦を2桁分しか持っていなかった
ことに起因してた。

桁が足りなくなっちゃったんだな。
お前が
ガキの頃の
話かな。

覚えとる?
 
 
参考:西暦2000年問題(Y2K)とは
 
 
2000年1月1日にコンピューターが一斉に誤作動を起こす
可能性があった問題。当時、世界中で大問題になった。
 
2000年以前に作られたシステムには、性能や価格などの
理由から、西暦を「19XX」の下2桁だけで見ているものが
存在した。(XXは00~99)

そのようなシステムは、西暦が1999年から2000年に変わる時、
「99」から「00」」に戻り、2000年を1900年と認識して誤動作を
起こす恐れがあった。

電気や水道等、社会インフラの基幹システムが誤動作を
起こした場合、甚大な被害が想定され、当時、世界的な問題
となった。

実際には各国の政府や企業が事前にこの問題への対策を
行い、大きな問題は起こらずに済んだ。
 
 
コンピューターが
大変とか
あったような?
たった4桁持つのも
大変な時代があった
んだね。

事故が起きなくて
良かった。


つまり、
桁の設計は重要
ってことね。
そういうこと。
 
 

     

固定長は
こんなとこかな。

次は可変長
見てみよう
可変だから
固定の反対
なのかな?
 
 

 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告