ここから本文です

Visual Basic でブール型の値を数値型に変換すると、False は 0 になり、True は -...

i_w********さん

2011/7/3115:09:45

Visual Basic でブール型の値を数値型に変換すると、False は 0 になり、True は -1。

とありますが。trueがなぜ、1ではなく-1なのですか?

閲覧数:
18,350
回答数:
4

違反報告

ベストアンサーに選ばれた回答

for********さん

2011/8/108:49:17

VB6でしょうか?

Falseが0なのは納得しているのでしょうか?
True = Not False
この式が成り立つのは理解できますよね。
VB6でBoolean型は16ビットです。
Not 0000000000000000となり、結果は1111111111111111で&HFFFFです。
この値は-1なので、
-1 = Not 0
となります。
Trueが1であれば、Falseは-2になってしまいます。

質問した人からのコメント

2011/8/4 23:34:37

貴重なお答えに感謝致します。

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

nao********さん

編集あり2011/8/110:52:00

Console.WriteLine("Trueを数値変換すると{0}になる", CInt(True))
Console.WriteLine("Falseを数値変換すると{0}になる", CInt(False))
を実行してみてください。(.NET Frameworkを使ってます)

C#では trueが1、 falseが0 となっています。

yse********さん

2011/7/3116:20:49

VBの話は知らなかったけど、伝統的に BASICは -1 ですね。当時聞いた話では 整数の0にbitのnot演算すると、全てのbitが立って、その数値表現が -1 だからだとか。

dis********さん

2011/7/3115:25:20

逆に聞きますと、TRUEがなぜ1である必要があるのでしょうか?
慣習的に1だという主張であれば、VBという言語に置いては、慣習的にTRUEは-1だという回答にしかなりませんよ。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる