2011年05月14日
川俣晶の縁側ソフトウェア技術雑記total 6939 count

4値論理型は実在するか

Written By: 川俣 晶連絡先

 論理型は通常trueとfalseの2つの値を取ります。2値です。

 ところが、実際には3値を取る論理型というのがあります。

 true, false, null(値の不在)を示すもので、SQL等でnullを許容するboolを指定すると3値論理型になります。この値をC#で直接受け取ることができるデータ型がbool?ということになります。

 では、4値論理型はあるのでしょうか?

 実はあったのですねえ。

 考えてみれば当たり前。

 ある演算の結果がtrueとfalseのどちらかに決まるとは断言できません。不定という解も正当な回答の内です。しかし、「不定」はまだ演算が行われていない「未定」とは位置づけが違います。「未定」は、将来の演算で値が確定する可能性を含みますが、「不定」とは既に値が確定しないことが決まってしまった結果です。だから「不定」を含む論理演算と「未定」を含む論理演算は同じ結果になるとは限りません。

 だから、{ true, false, null, indef }と言う4値論理型があっても良いわけですね。

なぜindefはあり得るか §

 実は浮動小数点の計算ではNaN(Not a Number)という結果が出てくる場合があります。だから、nullを許容する実数の場合、結果は「値として表現できる全ての数+null+NaN」が結果としてあり得る数です。つまり、「値として表現できる全ての数の種類+2」があり得るバリエーションです。これをboolに適用するとtrueとfalseの2種類が「値として表現できる全ての数」なので、2+2=4となり、4値型があり得ます。

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2011年
05月
23日
続々々々々々々々々々・パソコン雑誌戦線に異状有り?
3days 0 count
total 4457 count
【技術雑記】の前のコンテンツ
2011年
05月
12日
C#で遅延初期化するLazyInitializerクラス
3days 0 count
total 7702 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20110514145341
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.