***HPクリエイターのためのCGI講座 第2回***

0.Perl入門

演習問題がここのページにあります。
今週中を目標に完成させてください。
(解答も同じページにありますが、まずは、自分自身でチャレンジしてくださいね)

いよいよ、講座のスタートです。

募集要綱にも案内したとおり本講座は、HP作成経験者を対象としています。
FTPでの転送(ディレクトリ、ファイル)やHTMLのタグ等については、ある程度の知識を持っていることを前提として話を進めていきます。


本講座でのCGI用プログラム言語は、CGI用プログラム言語としては現在もっともポピュラーと思われるPerlを使用します。
Perl(Practical Extraction and Report Language)はLarry Wall氏によって開発されたプログラム言語です。
文字列操作を得意とし、HTML文章を操作しなければならないCGI用言語としては、適しているでしょう。

<コンピュータの基本>
CGI用プログラムと言えども、コンピュータ上で動くプログラムなので、コンピュータに関する基礎知識は必要です。
ここでは、コンピュータの扱うデータ単位について解説しましょう。
コンピュータは、ON/OFFのスイッチの固まりだと聞いたことはないでしょうか?
まさしく、これがデジタル機器の特徴です。

このスイッチ(ON/OFF)一つをbit(ビット)と呼びます。
このbitが8つ集まったものをbyte(バイト)と呼びます。
ON/OFFでは分かりにくいので、1/0の数値に置き換えて表します。
bitとbyteを0/1で表すと次のような情報を持つことができます。

1bit=0 or 1
1byte = 8bit = 00000000〜11111111

1byteは、0/1の8個の組み合わせでできているので、全組み合わせを考えると次のようになります。

00000000
00000001
00000010
00000011

11111100
11111101
11111110
11111111

この組み合わせの合計は、256通り(2の8乗)になります。
1byteは 0〜255 の数値を表現できることになります。
マイナスを考えた場合は、全組み合わせを -128〜127 に割り当てます。

256通りの数値を表せるのであれば、-128〜127 ではなく -128〜128 ではないのかと、勘違いされる人はいませんか?
種明かしをすると
  マイナスの数は -1〜-128 で128個
  プラスの数は 1〜 127 で127個
これで合計255通りですが、ここに0の表現も必要なので、合計256通りになります。

数値を表すのに、 0〜255 では貧弱なのでbyteをいくつか集めて、一つの単位することもあります。
2byteを1単位にした場合・・・2の16乗=0〜65535 or -32768〜32767
4byteを1単位にした場合・・・2の32乗=0〜4294967295 or -2147483648〜2147483647

コンピュータの数の単位は殆どの場合、2のべき乗になります。
3byteを1単位にするようなことは、無いと言っていいでしょう。

<数値表現>
1byteは 0〜255(-128〜127)の数値を表すことができるのは、前述の通りです。
このように 0〜255(-128〜127)のような表記を10進数と呼びますね。
コンピュータの世界では10進数の他に2進数、8進数、16進数が使われます。
2進数・・・0と1で表現
8進数・・・0〜7で表現
16進数・・・0〜9とA〜Fで表現

10進数 2進数 8進数 16進数
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11

16進数に関しては、HTMLで色コードの設定等に使用していますね。

<HTMLでの色コード>
3バイトを1単位として、各バイトをR(赤)、G(緑)、B(青)に割り当てて表現

色コード 表現される色
FF0000 255 0 0
00FF00 0 255 0
0000FF 0 0 255
FF00FF 255 0 255


********************************************************************************
講師:ALK alk@arkland.co.jp
運営:アークランド(株) http://www.arkland.co.jp