HOME  > 経営ブログ >  > ゼロからスタートそれとも1からスタート

経営ブログ

2020.01.06

ゼロからスタートそれとも1からスタート

                                                                                             監査役 古川正志

新年おめでとうございます.昨年は災害の多い年でしたが,今年は皆様にとって健やかで幸福な年であることを祈念いたします.

 

 昨年は新天皇が即位し,年号も令和となりました.ところで年号のスタートは元年,つまり1年から始まります.今年は令和2年になります.あたりまえのことですが,何故,零年から始まらないのでしょう.年齢の数え方には,数え5歳,満4歳といった二つの数え方があります(今は,満年齢が普通ですが).よく考えると,数えは生まれたときが1歳,満は実質の経過時間になり,始まりは零となります.子供の頃に不思議に思ったのですが,人が亡くなると,その時が1周忌,2年で3周忌なのは何故なのだろうと.これも始まりは1と考えれば腑に落ちます.

 

 指を数えるときには,1本,2本と数え始まりは1,定規で長さを測るときは,定規の1cmのところに1が書かれています.すなわち,はじまりはゼロになります.数の発見は,私の想像ですが(詳細に調べた訳ではないので),多分,指やリンゴ,獲物を数えることから始まったため,1からはじまるのではないでしょうか.しかし,家を建てるため長さを測ったり,重さを量ったり時間を計る時は,区間の長さを1として数えるためにどうしてもメモリは長さが一つ目のところに1,二つ目のところに2と目盛る必要性がでてきます.こうすると自然に始まりに0が必要となります.

 現代では1,2,3...と数えることをデジタル,メモリの位置を読んで数値にすることをアナログと読んでいます.こう考えると文明はデジタルから始まり,アナログに移行し,コンピュータの時代に入って,また,デジタルに戻ったともいえます.冒頭の歳の数え方は,数えの年齢がデジタル,満の年齢がアナログの数え方といえます.

 

 私のコンピュータの初めての言語はFORTARANでしたが,繰り返し文は,例えば1から100までの繰り返し命令をコードします.つまり,始まりは1になります.従って,その終了判定には,繰り返し数=100が使われます.特に,配列と呼ばれるメモリの箱を100個用意すると,箱には番地が1から100まで割り当てられ,繰り返しで値を配列のメモリに格納するときは,1番地から100番地に格納します.ところがC言語(その後の高級言語はすべて)がでてくると,繰り返し文で100回を繰り返すためには0から99となり始まりは0になります.従って,繰り返しの終了判定は,繰り返し数<100が使用されます.配列の番地もこれに対応して0から99迄と変わりました.始まりが1か0でプログラムのスタイルが大きく変わりました.

 

 話は脱線しますが,コンピュータでの0の判定はプログラムの初心者には悩ましい問題です.Aと2が等しいとはA−2=0を判定するのですが,この計算は整数のみに成立します.小数点のある(浮動少数点表現)計算では,数は,(1より小さな小数)x(10の何乗)で表していますが,整数が1より小さな少数の数値の並びにあわせることがほとんどできず,近似値を使っているからです.例えば,2という数は0.19999999999x10であってぴったり2ではないため=(イコール)の判定ができなくなります.この判定は,2cmの長さがのものを作るとき1.95cm以上で2.05cm以下であればOKとすると同じになります.

 

 ところで私たちの生活でよく「リセットして始めよう」という言葉が使用されますが,さて,リセットで始まるのは0からでしょうか.それとも1からでしょうか.

経営ブログ著者一覧
長澤 康夫代表取締役社長長澤 康夫
高橋 俊一取締役高橋 俊一
久末 博昭取締役久末 博昭

過去の記事一覧

  • RSS FEED
  • RSS FEED
  • ビジネスパートナー募集