数と単位

計算は単位を外してから実行している
そろばん
子どもの頃に最初に認識する「数」は、3人、100円、500メートルというような、単位がついた名数である。
意識はしていなかったかもしれないが、算数で四則計算を習うとき、名数を単位の付かない無名数に変換して計算している。最初に習うのは、同じ単位同士の足し算である。たとえば、3人のグループに2人が加わったら5人になることを、3 + 2 = 5 として求める。

数には、単位がある場合とそうでない場合があることを覚えておこう。

(2024年2月4日)記事「Undefined」,練習問題を追加

目次

名数と無名数

名数
単位や助数詞をつけた数のこと。例:3人、100円、500メートル。
無名数
単位や助数詞がつかない数のこと。
単位が異なる名数の計算は注意が必要だ。
たとえば、100メートルを10秒で走るときの秒速は、100メートル÷10秒=10メートル/秒 として求める。このように、単位が異なる名数の計算は、結果の単位も異なる。

最初から無名数というデータもある。
たとえば、マイナンバーのようなID番号は、最初から無名数である。ID番号は、量を意味しないので、足し算・引き算、大小比較ができない点でも名数と異なる。

quantitation と identity

日本語でうまい表現が思い当たらないので、下記のように定義をしておく。
quantitation
単位がつくデータ。算術・論理演算ができる。
identity
最初から単位がつかないデータ。IDなど。算術・論理演算は無意味。
コンピュータでデータ処理するときにも注意が必要だ。
演算処理装置は無名数として処理するので、プログラム側でquantitation なのか identity かを常に意識しておく必要がある。
型宣言では quantitationidentity なのかの区別はできないため、たとえば、誤って売上金額にマイナンバーを加算したとしても、処理系でエラーを出すことはできない。プログラム側でデータ属性をチェックする必要がある。

論理値

無名数として、もうひとつ、論理値(bool値)というものがある。数の大小比較や、AND、ORなどの論理演算の結果をあらわす数で、一般的にはTRUE(真)とFALSE(偽)の2値となる。
多くの処理系では、TRUEFALSE の各々に、実体として整数が割り当てられているが、属性としては整数ではない。

なお、論理値は必ずしも2値とは限らない。
たとえば、PHPバージョン7で導入された宇宙演算子は、「大きい/等しい/小さい」の3値を返す。

NULL

透明人間
コンピュータで扱うデータには、NULL (ヌル)  または nil という特殊な概念がある。
ラテン語の nullus(無)に由来するのだが、ゼロではなく、データ実体が存在しないことを意味する。

実際のプログラミングでは、型宣言はしたものの、実体を代入していない状態の変数が NULL に当たる。また、エラーが発生したときに NULL を返す処理系もある。
論理値(bool値)
数の大小比較や、AND、ORなどの論理演算の結果をあらわすデータ。例:TRUE、FALSE。
NULL(nil)
データ実体が存在しない状態。ゼロではない。

Undefined

「無」のイラスト
JavaScriptには undefined型がある。これは FALSENULL とは別物で、値が無いこと(定義されていないこと)を示す。変数を宣言したままの状態では、その変数に undefined が代入された状態である。
一方、オブジェクトが空の状態は NULL である。
SQLを含むほとんどのプログラミング言語に NULL が存在するが、言語によって定義が若干異なるので注意が必要だ。

練習問題

(この項おわり)
header