FALSE が 0 なら TRUE は -1 が正しい
782 :
仕様書無しさん:
なぜかvoidポインタにされているなw 後付でなんでも追加していいなら動くもの作れるし。
>>781 おまえはクズ。
voidじゃないポインタならエラーも警告も出ないとでも?(w
TRUE=1だとシックリ来るけどな。
-1だと型が違ったときに表せない場合がある(Sint8->Uint16への暗黙キャストの
場合、-1が255になる)が、1だけはどんな型に変換しても無条件に1だかんね。
255になったあとにSint16に変換されたら−1にならんですよ。
TRUEは使わないが一番安定的。
あれ?
>>785 だから
>>784 が言ってる事で
いいんじゃねーの?
それともfalseしか使わない方がいいのかな?
falseしか使わない方がいいね。ちなみに言ってることは同じだった。(ワラ
790 :
仕様書無しさん:04/07/02 23:59
プログラムなんて書かなきゃいいじゃないの?
>>790 どうせ死ぬのになんでおまえは生きているの?
>>784 内部形式なんて気にする必要ないだろ?
内部形式が常に1でなければいけないから、1がいいなんて無意味な理屈だよ。
-1である必要も無いな
でも0はだめだぜ〜。
諸君が愛したTRUEは1だった! 何故か!
FALSEさ故の過ちさ。
797 :
仕様書無しさん:04/07/07 23:47
その前に、なぜ、trueとfalse が違うものとして定義されなければならないのかを、
論理的に証明してください。
区別したかったから
なんとなくじゃない?
VB.NETの場合
Imports System
Class Test
Public Shared Sub Main()
Console.WriteLine(CInt(True)) ' 出力:-1
Console.WriteLine(Convert.ToInt32(True)) ' 出力: 1
End Sub
End Class
801 :
仕様書無しさん:04/07/09 12:30
C++のコードで、
bool flag;
...
if( flag != true ){
}
っていっぱいあるんだけど、よくないよねこれ?
>>802 よくないな。
>C++
↑こうじゃなくて C++ こう書いた方がスマートだよ。
そうか
↓こうだろ
if ()
{
}
それはいやだ
if (flag == (bool)NULL)
if (flag == (bool)NULLPO)
812 :
仕様書無しさん:04/08/24 14:55
FALSEが-1なら
TRUEはx≧0
-2だとマズイのか?
814 :
仕様書無しさん:04/08/24 15:47
TRUE==1 だと、こういう文のときに便利(実際に使われるかどうか分からないけど)
a = (b<c)*2+(c==0)*3;
TRUE が変な値だと、
a=0;
if (b<c) a+=2;
if (c==0) a+=3;
と、3行で書く必要がある。
三項演算子くらい使えよ
816 :
仕様書無しさん:04/08/24 15:54
>>815 if文を使わずにプログラム書くことに意味がある。
参考演算子を使うと、
a = ((b<c) ? ((c==0) ? 5 : 3) : ((c==0) ? 2 : 0));
となって無駄が多すぎるし、if によってパイプライン処理が妨げられて低速になる。
単純に置き換えるなら
a = (b<c ? 1 : 0)*2+(c==0 ? 1 : 0)*3;
じゃねぇの?
つか、条件文使ってる時点で低速云々逝っても意味ねー
818 :
仕様書無しさん:04/08/24 16:10
>>814の前半の文には if が含まれないはず。
>>816 >if によってパイプライン処理が妨げられて低速になる。
そんなくだらない事を考える暇があるなら
可読性の高いコードを書く事に腐心しましょう。
820 :
仕様書無しさん:04/08/24 16:57
>>819 可読性なんて、コメントをたくさん付けたり適度に改行・空白をあけることで解決します。
計算量の多いプログラムだったら、どうしてもパイプライン処理とかが問題になります。
高速化を馬鹿にするから、最近のプログラムは極端に重くなるんですよ。
可読性に腐心しすぎてスピードが極端に落ちてもいいんですか。
a = (b<c) * 2 /* b<c ならば 2 を加える */
+(c==0)*3;/* c==0 ならば 3 を加える */
とすれば何ら可読性に問題はありません(ここではタブが書けないけど)。
そもそも自分で
>TRUE==1 だと、こういう文のときに便利(実際に使われるかどうか分からないけど)
あるかどうか分からない状況を設定して、何を憤ってるのさ。
環境を限定して(trueが1である環境においてのみ)、自分はそうすりゃいいだろ。
だいたい「極端に落ちる」って、さらに何か脳内で条件付加したのか?
822 :
仕様書無しさん:04/08/24 17:33
>>821 具体例は忘れたけど、似たような状況はありました。
条件も何も、
(b<c) と、((b<c)?0:1) では内部的に違うはず。
繰り返し処理(1億回くらいのループ)だとその差は大きいはずです。
だーら、
>環境を限定して(trueが1である環境においてのみ)、自分はそうすりゃいいだろ。
そうじゃない可能性があるなら、使えない。
大体、内部的(コンパイル後の事か?)なんてのもコンパイラ次第だろ。
ここで何を主張してるんだ。
824 :
仕様書無しさん:04/08/24 17:59
コンパイラ次第と言っても、ある程度の共通点はあるはずです。
分からないんだったら最初からそう言ってください。
825 :
仕様書無しさん:04/08/24 18:03
>820
True=-1なら
a = (b<c) * -2 /* b<c ならば 2 を加える */
+ (c==0) * -3;/* c==0 ならば 3 を加える */
でおk?
>>824 なにが?
trueが1な環境ならそうすりゃいい、と言ってるのに、
最初からなんだって?
なんでココはこんなに香ばしいのですか?
お前が居るからちゃう?
829 :
仕様書無しさん:04/08/25 12:07
>>826 環境に依存しないコードを書くことも大切では?
ある処理系では true==1, ある処理系では true==-1, 別な処理系ではそれ以外となれば
混乱の元かと。
突っ込み先は824の方じゃないか
>>820 >可読性なんて、コメントをたくさん付けたり適度に改行・空白をあけることで解決します。
やはり、作り捨てコードを書く人は言うことが違いますね。
>高速化を馬鹿にするから、最近のプログラムは極端に重くなるんですよ。
妄想癖もあるようです。
>>827 スレタイからして芳しいですから。
>>828 True = Not False = &HFFFF = -1 主義の
VB厨房必死ですね(w
>>831 >やはり、作り捨てコードを書く人は言うことが違いますね。
確かに製品としてのプログラムを書いたことはないですけど・・・
>妄想癖もあるようです。
現に、Windowsは重すぎます。
最速のパソコンを使えば殆ど気にならないかも知れないけど、
少し遅めのパソコンを使うと、10個くらいのアプリケーション(メモ帳や電卓を含む)を起動するとすぐに固まるし、
酷いときはマウスカーソルが止まることさえあります。
一つ一つのアプリケーションが使用するメモリが大きすぎるのだと思います。
これはアプリケーションが原因かも知れないし、Windowsが原因かも知れないし、他のところにあるかも知れません。
もしかしたら、今あるGUIなどを実装しようとすればWindows以上に軽くは出来ないのかも知れませんけど・・・
アプリのメモリ使用量が原因なら、アプリが原因だろう。
自分で何を書いてるか把握してないのか。
>>833 1.読みにくいコード
1a.改造改造を重ねどんどん重くなってるコード
1b.素人が書いたやっつけコード
1c.速度重視で細工しまくったコード
2.読みやすいコード
2a.考え方が整理されているコード
これを、速度順に並べると、
速------------------------遅
1c
>>2a>越えられない壁
>>1b>1a
ところが、これに修正1回が加わると、
「速度重視で細工しまくったコード」の速度はガタオチする危険がかなり高い。
つまり、商用のコードは読みやすさ重視で作ったほうが無難。
速度とかはどうでもいい、TRUEが-1かどうかを語るんだ
ついでに言うと、「読みやすいコード」の方が修正も楽だし
修正時の速度低下も(担当が相当バカじゃない限り)かなり低く抑えられる。
「速度重視で細工しまくったコード」は、修正が難しいし
担当が相当賢く無い限り速度低下は防ぎづらい。
「高速化」とか言い出すなら、まずループの中身をシンプルにするとか
見やすくなる高速化を優先した方がいいぞ。
#もちろん、公式がある場合は多少複雑になっても式をコメントに書いてそれ使えば良い。
抽象化がキライな人たちが集まっているスレですね。
>>820 #素人さんに説明するつもりで書きます。無礼だと思われたならそう言ってください。
演算を行う部分が応答速度低下の原因(ボトルネック)になる事は稀です。
画面へ表示、二次記憶へのアクセス等のIOを行う時間が、メモリ上の操作(演算)の
10*3程度のオーダーで長いからです。
つまり、(一概には言えませんが)IOは演算の1000倍程度以上の時間がかかるからです。
#まあ稀にアルゴリズムレベルで大馬鹿なプログラムがあって、演算がボトルネックとなる例が無いとは言いませんが。
すなわち
>>820より.
>>819の見解のほうが職業PGとしての共通認識として正しいのです。
なんでboolean型と整数型が可換であることを前提に議論してるの?
841 :
仕様書無しさん:04/08/25 17:30
あえて不可換にする必要がないから。
今時 boolean 型と整数型が不可換の言語なんて終わってると思う。
それが許されるのはちょっとしたスクリプト用の言語くらい。
今時が何か関係あるのだろうか。
>高速化を馬鹿にするから、最近のプログラムは極端に重くなるんですよ。
高速化を莫迦にしているのはお前だ。
それを語るなら、機械語の知識くらい身につけてからにしろ。
偽=0,真=1が機械語レベルで実装されているCPUを、少なくともオレは知らない。
普通は、フラグを使って判断(分岐)する。
真に1を代入するために、結局分岐を使わざるを得ないのだ。
つまり、仮にコンパイラが最適化を何もしないとすれば、
>a = (b<c)*2+(c==0)*3;
は、
a=0;
d=0;
f=b-c;
if (cf==0) goto 100 /* cf:carry flag */
d=1;
100: d=d*2;
a=a+d;
e=0;
f=c;
if (zf==1) goto 200 /* zf:zero flag */
e=1;
200: e=e*3;
a=a+e;
の様な感じに翻訳される。素直にif文を使うより、却って遅い。
844 :
仕様書無しさん:04/08/25 21:44
フラグ!!
そう言えば、そんなのがありました・・・。
厨房の頃に少し齧っただけで、それ以来あまりやってなかったです・・・。
jne, je, jg, ・・・
最近アセンブラを使っていないので忘れてました。逝ってきます
逝ってきます
; 9 a = (b<c) * 2 + (c==0) * 3;
.line9
movl-4(%ebp),%edi
cmpl%edi,-12(%ebp)
jge_$5
movl$1,%ebx
jmp_$6
_$5:
movl$0,%ebx
_$6:
cmpl$0,-4(%ebp)
jne_$7
movl$1,-16(%ebp)
jmp_$8
_$7:
movl$0,-16(%ebp)
_$8:
movl%ebx,%edi
sall$1,%edi
imul$3,-16(%ebp),%esi
addl%esi,%edi
movl%edi,-8(%ebp)
; 10
確かに条件付分岐が入っていました・・・
847 :
仕様書無しさん:04/08/25 23:18
a = (b<c)*2+(c==0)*3;
a = (b<c)*2+(c==0)*3;
の分岐なくすなら、ビット演算で
a = ((unsigned int)(b - c) >> 31)*2 + (((unsigned int)c
>>31)^((unsigned int)(-1*c)
>>31)^1)*3;
だろ。
もうボトルネックはCPUじゃないもんね。
>847
b,cがintかunsigned intかはどこにも書いていないのだが、
signedだとすると、b=1,c=0x80000000Lの時など正しい解を与えない。
unsignedだとしても、b=0x80000002L,c=1の時などに、やはりアウト。
藻前ら、アンドレ以下だな。
どうでも良いんだが、
TRUE = [定数]
FALSE = [定数]
に割り当てるメリットが事実上少ない
852 :
仕様書無しさん:04/08/27 23:54
16(32でもいいけど)ビット符号つき整数は
(∧=&,∨=|,¬=~,False=0,True=-1)
でブール代数になる。しかし
(∧=&&,∨=||,¬=!,False=0,True=1)
はブール代数にならない。ブール代数の公理、
例えばa∧a=aを満たさないからだ。
Cでは5&&5は1になり、5にはならない。
False=0、True=1としたらどんなふうに∧や∨を定義しても
ブール代数には多分ならないだろう。だからTrue=1は変。
どう?
> False=0、True=1としたらどんなふうに∧や∨を定義しても
> ブール代数には多分ならないだろう。
これはうそですたすまぬ
854 :
仕様書無しさん:04/08/28 00:00
二値論理なのに論理式に5を使うことがそもそもの誤り。
論理式における同値関係〜というものを定義すれば、int の場合、
0≠1, 1〜2〜3〜4〜5〜・・・・・・・・・・・〜2^31-1〜-1〜-2〜・・・・〜-2^31
となる。
もちろん、この同値関係は数学で言うイコールではない。
ぶっちゃけどうでもいいんだけど、どうしよう
>854
論理式とブール代数をごっちゃにしないでほしい。
5はれっきとした(ビット演算による)ブール代数の元。
ま、論理演算の方はa==bの変わりに(!a||b)&&(!b||a)を
使えばブール代数になるからいいんだけど(854の〜)
Cにもともとある==でブール代数になってくれればすっきりしてるんじゃない?
>>857 論理式≠ブール代数
ビット演算=ブール代数
ということ?
全ての整数(int型変数)は論理式におけるブール代数の元だと思うが?
もちろん、「=」ではなくて「〜」で考えればの話。
なんでfalseがゼロなのかと言う疑問に、合理的な回答はありますか?
trueがゼロでもいいじゃん。
と言うか、そっちの方が便利な事って結構多いと思いませんか?
true!=0, false==0 の方が人間の直感に合っているからだと思う。
論理積は普通の積と一致するし、論理和は 1+1=1 を除けば普通の和と一致するし。
true==1, false==0の場合:
0∧0=0 0∧1=0 1∧0=0 1∧1=1
0∨0=0 0∨1=1 1∨0=1 1∨1=1
true==0, false==1の場合:
0∧0=0 0∧1=1 1∧0=1 1∧1=1
0∨0=0 0∨1=0 1∨0=0 1∨1=1
どちらが分かりやすいかは個人差があるけど。
861 :
仕様書無しさん:04/08/28 01:33
>>858 >全ての整数(int型変数)は論理式におけるブール代数の元だと思うが?
>もちろん、「=」ではなくて「〜」で考えればの話。
それには同意。でもそれだったらTrue=-1もTrue=1もどっちも同じってこと
になってしまうので、True=-1が自然である理由を考えてみたら852が思いついた。
862 :
仕様書無しさん:04/08/28 01:36
TRUEはTRUE
FALSEはFALSE
861は852ね。
>858
>論理式≠ブール代数
うーむ比較のしかたがよくわからんがとりあえずノリで答えれば
Cの論理式=ブール代数 modulo 「〜」
Cのビット演算=もろブール代数
ぜんぜん話についていけない
なんで論理型で整数を表現しようとしてるの?
っていうか、何の話してる?
自分でもわからなくなってきたので整理してみた。
int modulo 「〜」だと論理式を(実質)2元のブール代数で
解釈できてうれしい。そのかわり元の比較に==はつかえない。
「aとbが両方とも真か偽」っていうのをa==bって書くとバグる可能性がある。
ビット演算だとintは素でブール代数になり真が-1となる。
だけど真と偽の他に元がいっぱいあってなんだか変。5って何よ?
>>864 逆だ逆。論理型を整数で表現してるんだ。
C厨が好きな下らない議論だよ。
でも言語上の型が「論理型」でもメモリ上ではバイナリの
数値じゃないの?
バイナリはバイナリ
数値は数値
論理型は論理型
メモリ上では電気信号
ちゃんとした C プログラマなら
C に論理型などという型はない事は
理解されている事と存じます。
因みに _Bool は
「少なくとも0或いは1を格納できる整数型」
です。
872 :
仕様書無しさん:04/09/01 09:44
>>871 論理型はないっていうか、表現できないから代替として
実装している、だね。
そもそもさー。スレタテはこの議論でたとえば題名通り
のコンセンサスを得たくてたてたんだろうから、その先
の「真意」があるはずなんだよね。
そ れ っ て な に ?
人間がコンピュータに合わせる時代は終わった。
論理型ぐらい実装しろや。
874 :
仕様書無しさん:04/09/01 11:27
>>873 1bit処理のCPUを作れということですね
たぶん、
>>873はコンピュータが論理回路のカタマリだということを知らない専門学校出の兵隊なんだろ。
論理型と論理回路って全然違くないか?
まぁ・・・どうでも良いわけだが
せっかく32bitあるんだから、ファジィ論理実装しようぜ。
a ∧ b = min(a, b)
a ∨ b = max(a, b)
¬a = UINT_MAX - a
true = UINT_MAX
false = 0
# define TRUE rnd * 0xff
# define FALSE rnd * 0xff
○if(b == FALSE)
○if(b != FALSE)
×if(b == TRUE)
if( b )
if( !b )
おマイら、も少し柔軟性を持たせレ。
extern long TRUE;
extern long FALSE;
完璧。
>>883 printf("%s", TRUE);
フフフフ
885 :
仕様書無しさん:04/09/18 16:55:29
お前ら馬鹿じゃねーのww
FALSEが0ならTRUEは1だっつーの(ワラ
頭悪ぃーなお前らww
どうでもいい
こんなこと議論してるひまがあったらプログラミングしたほうが有意義だろ?
「ファルス」が 0
「つるつる」が 1
それでいいんじゃないの?
見事に名が体を現しているし。
>>887 おもしろくねんだよ
ってゆーか超くだらねーし
お前頭の中いったいどーなってんのよ
890 :
仕様書無しさん:04/09/19 12:01:23
アフォくさ。
マシン語の知識も無いのに
「自分はプログラマのつもり」の奴大杉。
アホくさ。マシン語が面倒くさいから上級言語開発したのに
「自分だけがプログラマのつもり」の奴お前だけ。
892 :
890:04/09/19 13:23:34
ひぃっ!
>>890はヲタクだった!ヲタクにレスしちゃった!
894 :
25:04/09/19 14:39:00
ひぃっ! ひぃっ! ひぃっ! ひぃっ!
ひぃっ! ひぃっ! ひぃっ! ひぃ
ひぃっ! ひぃっ! ひぃっ!
ひぃっ! ひぃっ! ひぃっ!
っ! ひぃっ! ひぃっ! ひぃっ!
ひぃっ! ひぃっ! ひぃっ! ひぃ
ひぃっ! ひぃっ! ひぃっ!
ひぃっ! ひぃっ! ひぃっ!
ひぃっ! ひぃっ! ひぃっ!
っ! ひぃっ! ひぃっ! ひぃっ!
ひぃっ! ひぃっ! ひぃっ! ひぃ
ひぃっ! ひぃっ! ひぃっ!
ひぃっ! ひぃっ! ひぃっ!
ひぃっ! ひぃっ! ひぃっ!
896 :
890:04/09/19 15:32:02
どうして“0”と“0以外”なのか
説明できないだろ。
急いで調べてみな。
考えるの面倒だからユーザに選ばせろ
898 :
890:04/09/19 15:47:02
「++は1加算で、--は1減算」程度の知識しかないだろ。
急いで調べてみな。
うるせーよ馬鹿。周りに講釈たれられる相手がいないからこんなところでオナニーしてんだろう。
900 :
仕様書無しさん:04/09/19 16:59:27
>>896 もしかして、C の話をしてますか?
だとしたらかなり無知ですね。
0と0以外というより、0がFALSEだから「0でない」はTRUEってだけでは
>>888 >お前頭の中いったいどーなってんのよ
こんな感じになっていますが、何か?
ファルス: o0o
つるつる: (1)
906 :
仕様書無しさん:04/09/20 12:48:56
お前ら頭悪すぎww
TRUEは1で、FALSEが0。分かる?
TRUEかFALSEかの違いはCCRの Z フラグがたっているかいないかだよ。
908 :
仕様書無しさん:04/09/20 13:30:14
ほかにもCCRのCフラグとかで代用ができる。
スーパーインテリなCやC++ユーザーなら理解できるだろう。
庶民派なVM言語の人間はだめだな。
909 :
890:04/09/20 18:26:17
説明しよう
高級言語では様々な条件判断が可能だが、
CPUには「0か0でないか?」を判定する能力しかないのだよ。
だからそのまま「0か0でないか?」が高級言語にも存在するのだよ。
それから、a=a+1;でもa++;でも、結局同じじゃねーかゴルァ!!というあなた。
CPUレベルでは、「1加算」「1減算」に限って特別な命令が用意してあって処理が高速なのだ。
で、賢いコンパイラなら++や--の場合は、この高速な処理を使うのだよ。(inc,dec)
MSのコンパイラはa++もa=a+1も同様に処理しているようだが・・・
ま、最近のCPUはよくできてるからa=a+1もa++なみに高速に処理しちゃうかな。
それにCPU自体が超高速だから、あんまり細かいこと気にする必要もないか。
TRUEはオン、FALSEはオフ
えーとここは「最高に頭悪い発言をするスレ」になったんだよね?
空気読めなくてごめん。
890 名前:仕様書無しさん[] 投稿日:04/09/19(日) 12:01:23
アフォくさ。
マシン語の知識も無いのに
「自分はプログラマのつもり」の奴大杉。
909 名前:890[] 投稿日:04/09/20(月) 18:26:17
説明しよう
高級言語では様々な条件判断が可能だが、
CPUには「0か0でないか?」を判定する能力しかないのだよ。
だからそのまま「0か0でないか?」が高級言語にも存在するのだよ。
それから、a=a+1;でもa++;でも、結局同じじゃねーかゴルァ!!というあなた。
CPUレベルでは、「1加算」「1減算」に限って特別な命令が用意してあって処理が高速なのだ。
で、賢いコンパイラなら++や--の場合は、この高速な処理を使うのだよ。(inc,dec)
MSのコンパイラはa++もa=a+1も同様に処理しているようだが・・・
ま、最近のCPUはよくできてるからa=a+1もa++なみに高速に処理しちゃうかな。
それにCPU自体が超高速だから、あんまり細かいこと気にする必要もないか。
890でもJava厨よりは幽愁。
914 :
仕様書無しさん:04/09/20 20:25:10
お前らプログラミングした事無いっしょ(プゲラ
「プゲラ」 って頭悪そうだよな
>>909 >CPUには「0か0でないか?」を判定する能力しかないのだよ。
C だけでなく、プロセッサの知識もなかったようですね。
>で、賢いコンパイラなら++や--の場合は、この高速な処理を使うのだよ。(
コンパイラの知識もないようです。
>それにCPU自体が超高速だから、あんまり細かいこと気にする必要もないか。
速度的にシビアなアプリケーションの実装経験もないんですか?
ないないづくしですね。
とりあえず890のいうCPUはどこのメーカのCPUだ?
>>909 初心者にわかりやすくするためとはいえ、不正確な表現は良くない。
#最後の2行で素人であることがバレテいるぞ
>>916 >速度的にシビアなアプリケーションの実装経験もないんですか?
寡聞にしてインクリメントの際の命令が問題になるほどの
「速度的にシビアなアプリケーション」を知らないw。教えてクレw
#そんなもんネエヨ。君も素人だね
>>916 速度的にシビアな要求をされるアプリケーション、ならあるだろうな。
921 :
仕様書無しさん:04/09/23 22:34:44
true は 0 で、false は 0 以外です。
if grep ${username} /etc/passwd > /dev/null; then
echo "${username} is found."
fi
922 :
仕様書無しさん:04/09/23 22:40:23
% true
% echo $?
0
% false
% echo $?
1
画面に表示された文字が0だからといって、実装が0とは限らんなぁ。
そもそも画面に表示された0の文字コードは0じゃないし。
924 :
仕様書無しさん:04/09/24 00:07:10
>>923 そうなんだよね。
printf("%d\n", 0);
とやっても、実装により 0 の内部表現は 0 とは限らないし。
a++とか--bとかはinc,decよりむしろ
ポストインクリメントとかプリデクリメントの
アドレッシングモードに対応させた方が分かりやすいような。
6809
LDA ,X+ ; A = *(X++);
STD ,Y++ ; *(Y += 2) = D;
LDB ,-Y ; B = *(--Y);
LDX ,--S ; S-=2; *(S) = X;
みたいな
>>924 Cの場合パディングビットと符号ビット以外は0になることが保証されている
ので、パディングビットまたは符号ビットが0以外になる場合だね。
逆に全ビット0は整数0になることが保証できる(たしか)。
ありそうなのが負の数が1の補数表現だったり、符号ビット+絶対値表現の
場合のいわゆる-0だね。
intの内部表現にパディングビットのある環境ってあるのかなあ。
>>923 trueはint main() { return 0; }だと思うけど。
(argv[0]を見てなんかやってるかも)
このスレまだやってたんかい
>>918 普通にいっぱいある。インタプリタの最内側でもいいし
グラフィックとかエンコードとかの処理の最内側ループでもいいし。
930 :
仕様書無しさん:04/11/02 20:20:45
もうすぐ次スレだな。
まとめ
TRUEは定義されるものであって
なにかから算出されるものではない。よって正しいも糞もない。
以上。終了。
余談だが、Delphiとかでファイルストリームにboolean値を書き込んで、
バイナリエディタで確かめてみると、
Trueは勿論0x00、Falseは0xFFが書き込まれているのは知っていて
損はないと思うよ。今更だけど。
すまん、逆だ。
Falseは0x00、Trueが0xFFだ。
おっちょこちょいだったな。
>>934 でも弊社では 0xFF は必ず Invalid Value を表すことになってますよ?
2 バイトなら 0xFFFF, 4 バイトなら 0xFFFFFFFF ね。
弊社では・・・・・・とか言われてもねー
VARIANT_TRUE
938 :
仕様書無しさん:04/11/09 16:19:26
スレも終了が近いが、結局誰の意見が正しいのだ?
>>935 C の古典的な書き方で、int main() がエラーを起こして異常終了する時は -1 (要するに全ビット起立!)を返すってのがあるな。
で、ここは TRUE/FALSE について話すスレなんだが、その Invalid Value と何か関係があるのか?
つーかDelphiではByte(True)=1だ
電気的にはtrue==1だろ。
PGは言語仕様次第。
糸冬 了
>>943 >電気的にはtrue==1だろ。
いいえ違います。
RISCコンピュータ的には、ゼロレジスタと比較して、イコールなら偽、ノットイコールなら真
って事かな?
946 :
仕様書無しさん:04/11/13 01:18:18
1 = 5V
0 = 0V
947 :
仕様書無しさん:04/11/13 06:50:46
TRUEが -1 と言われると、昔MSX-BASICで、スペースキーが押されたかどうかの
関数の戻り値が -1 だったのを思い出すよ。
こんな感じ。
10 PRINT STRIG(0);:GOTO 10
1 = ティムポ
0 = マムコ
950 :
sage:04/11/13 15:24:55
1000までに結論だしとくれよ
> TRUEは定義されるものであって
> なにかから算出されるものではない。よって正しいも糞もない。
これでいいと思うが。
でも-1がコンピュータ的には一番自然な定義だね。
まあ、二乗するとマイナスになる数みたいなもんだよ。!0 って奴は。
-1だと2つキー押さなきゃならないだろ。
だからわざわざPCが入力者に思いやって1と1つのキーだけにしてくれてるんだよ。
分からないのか?
んなこたぁない
ぬるぽの出番はまだですか?
ガッの出番!
ところでこんなのはどうよ。
#include <stdio.h>
#define TRUE 1
int main(int,char**,char**)
{
struct
{
char Val:1;
}Bool = {TRUE}
;
if(Bool.Val == TRUE)
printf("%d\n",Bool.Val);
return 0;
}
こういうときTRUEが1だと面倒だよねぇ〜。
でも、ValがunsignedのときTRUE -1だとやっぱり面倒。
結局はTRUEなんてわざわざ使わないのが一番だろ。
>>961 そんな「真偽値が何か解っていない間抜けなコード」持ち出されても。
やっと答えが出ました
#define TRUE (ここに何か数値)
というコードの意味は
『TRUE の値は不定、柔軟に決める』
ということでし
963がバカっぷりをさらしただけで何の答えにもなってないな
const TRUE = !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0;
/* FALSE が 0 なら TRUE は -1 が正しい */
if(FALSE == 0){
TRUE = -1;
}
968 :
仕様書無しさん:05/01/13 15:57:24
#define TRUE ((void *)0)
#define FALSE ((void *)1)
ファルス!
トルゥアッ!!
970 :
仕様書無しさん:05/01/13 18:16:04
つーか、真偽値を整数値にキャストできるような低級言語が高級言語を名乗ってることが一番の問題なんでわ?
BOOLならTRUEが1以上、FALSEは0。
TRUEは255か65535か4294967295(か18446744073709551615)でいいんじゃない?
真実などこの世には存在しない
なんでもいいよ
975 :
仕様書無しさん:05/01/20 16:15:51
#define TURE 975
976 :
仕様書無しさん:05/01/22 14:00:02
#define FALSE 976
#pragma message("それで結論は?")
Const short vbTrue = -1
Const Short vbFalse = 0
981
982
983 :
仕様書無しさん:05/02/05 07:27:00
983
984 :
仕様書無しさん:05/02/05 07:27:46
984
985 :
仕様書無しさん:05/02/05 07:29:41
985
986
987 :
仕様書無しさん:05/02/05 07:38:36
987
988 :
仕様書無しさん:05/02/05 07:41:12
988
989 :
仕様書無しさん:05/02/05 07:43:53
989
990 :
仕様書無しさん:05/02/05 07:45:30
990
aaaa
992 :
仕様書無しさん:05/02/05 07:46:29
991
993
994 :
sage:05/02/05 07:47:26
a
b
995
997 :
仕様書無しさん:05/02/05 07:48:51
997
998
999
1000 :
仕様書無しさん:05/02/05 07:52:11
* + 巛 ヽ
〒 ! + 。 + 。 * 。
+ 。 | |
* + / / イヤッッホォォォオオォオウ!
∧_∧ / /
(´∀` / / + 。 + 。 * 。
,- f
/ ュヘ | * + 。 + 。 + このスレッドは1000を超えました。
〈_} ) | 次スレも…VIPクオリティ!!
/ ! + 。 + + *
http://ex7.2ch.net/news4vip/ ./ ,ヘ |
ガタン ||| j / | | |||
――――――――――――
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。