FALSE が 0 なら TRUE は -1 が正しい

このエントリーをはてなブックマークに追加
1仕様書無しさん
TRUE = NOT FALSE = NOT 0 = NOT 00000000B = 11111111B = -1
2仕様書無しさん:04/04/17 07:38
どぴゅっと2get
3仕様書無しさん:04/04/17 08:30
バカスレ認定
4仕様書無しさん:04/04/17 09:36
>>1 != TRUE
5仕様書無しさん:04/04/17 11:25
>>0 FALSE
6仕様書無しさん:04/04/17 11:29
test

>>0-10
>>2000
>>-1
>>995-1005
>>-2-5
7仕様書無しさん:04/04/17 11:36
8仕様書無しさん:04/04/17 12:59
65535
9仕様書無しさん:04/04/17 13:22
>>1=false
10仕様書無しさん:04/04/17 13:38
BASICはもとから真は-1だよ?
11仕様書無しさん:04/04/17 13:40
VBのチェックボクースで悩んださ
12仕様書無しさん:04/04/17 13:57
>>11 マジックナンバーじゃなくてenum値使え
13仕様書無しさん:04/04/17 14:34
そういえばVB.NETにするときにRC1あたりで一時的にTrue = 1にしたおかげで
大反発を招いて True = -1に戻したいきさつがあったね。
14仕様書無しさん:04/04/17 14:40
だってtrueが1だなんておかしいじゃん?
15仕様書無しさん:04/04/17 14:48
False = 0

True = 0 ではない値

だよ。
16仕様書無しさん:04/04/17 15:01
0ではない値 = NOT 0 = NOT 00000000B = 11111111B = -1
17仕様書無しさん:04/04/17 15:01
TRUE = NOT FALSE = NOT 0 = NOT 0B = 1B = 1

アホ草
18仕様書無しさん:04/04/17 15:06
>>17
アホはお前だろ?
その0は何ビットの型だ?

8ビットならNOT 00000000B = 11111111B = -1
16ビットならNOT 00000000 00000000B = 11111111 11111111B = -1
32ビットならNOT 00000000 00000000 00000000 00000000B = 11111111 11111111 11111111 11111111B = -1

どの場合にもしっくり来るのは-1
19仕様書無しさん:04/04/17 15:11
>>18
1ビットにきまてるだろ。

もっといったら、

TRUE = NOT FALSE = NOT 0 = NOT 0B = 1B = 1 = -1

アホ草
20仕様書無しさん:04/04/17 15:12
結局-1の方がいいってことじゃん。
21仕様書無しさん:04/04/17 15:13
2の補数表現を勝手に仮定してはいけない。
1の補数表現ならFALSE=0のばやい、
TRUE=NOT FALSE=NOT 0B=1B=0=FALSE。
22仕様書無しさん:04/04/17 15:16
if(a==TRUE)

と書かずに、

if(a!=FALSE)

と書けと言われた消防達でつか?
23仕様書無しさん:04/04/17 15:17
1の補数表現でも2の補数表現でも
1ビット型で無い限り1にはならないんだよね。
24仕様書無しさん:04/04/17 15:27
>>21
> 2の補数表現を勝手に仮定してはいけない。
C言語で~0が1の補数表現で0になることって
言語仕様的にありえるの?
25仕様書無しさん:04/04/17 15:28
要するに >>1

論理型を符号無し整数の型にキャストするような
操作が必要となることは絶対にありえない

と主張したい訳だな?
26仕様書無しさん:04/04/17 15:37
>>1は三進法でも使いたいとか?
27仕様書無しさん:04/04/17 15:42
>>25
たとえ符号なし整数型にキャストしても1にはならないけどな。
28仕様書無しさん:04/04/17 15:49
お前ら馬鹿だな。

FALSE = NOT TRUE = NOT 1 = NOT 00000001B = 11111110B = -2

これが正解。
29仕様書無しさん:04/04/17 15:54
>>24

大抵の環境、言語、DBで論理値 偽=0

真の値はさまざま

C言語ではもともと論理型がないが代わりにint型をつかい
偽=0、真=0以外 が慣例

Pascalは真=1じゃなかったかな。
UNIX(shell)も大抵真=1

exit(1)

30仕様書無しさん:04/04/17 16:00
あれだ、1は上司に怒られようが、バグが出ようが
if(a==-1)
と書き続けてほしい
31仕様書無しさん:04/04/17 16:01
if (a)
じゃないの?
32仕様書無しさん:04/04/17 16:03
if ( (a == 1) || (a == 2) || (a == 3) || (a == 4) || (a == 5) || (a == 6) || …
33仕様書無しさん:04/04/17 16:04
中の値に依存するコーディングする奴は死刑
34仕様書無しさん:04/04/17 16:05
>>29
exit(1) は偽。 if ./prog_exit_1 then echo "true"; fi に失敗する
35仕様書無しさん:04/04/17 16:06
VC++ではTRUEに1が定義してあったような。
36仕様書無しさん:04/04/17 16:08
>>34
prog_exit_1 then echo 「True」
と書いておろうよ、自分で(w

37仕様書無しさん:04/04/17 16:13
>>35
C++とCは違う
C的にはTRUEには0以外の値ならなんでもいいわけだから
1でも-1でもかまわない。VC++がTRUE=1なのは
インプリメンタ(実装者=M$)の考えによるものだろうね。
38仕様書無しさん:04/04/17 16:14
UNIXのシェルじゃ1が偽なのは間違いない
39仕様書無しさん:04/04/17 16:19
>>37
>C的にはTRUEには0以外の値ならなんでもいいわけだから

お前の言う TRUE が何を指しているのか分からんが
C言語的には 3==3 は 1 になる事が保障されているぞ。
40仕様書無しさん:04/04/17 16:19
-1を32ビット符号なし整数変数に入れて
それをさらに64ビット整数に代入して-1じゃなくなってコケる
みたいなバグってやりがちだよな。
-1よりも1の方がその点は安全だと思うが。

まあ、結局のところは>>33が正しいんだが。
41仕様書無しさん:04/04/17 16:21
>>36
$ cat - > prog_exit_1.c
#include <stdio.h>

int main()
{
exit(1);
}
$ gcc -o prog_exit_1 prog_exit_1.c
$ if ./prog_exit_1; then echo "true"; fi
$
42仕様書無しさん:04/04/17 16:23
論理値を32ビット変数に入れるなんて酔狂なことをする奴はいない。
43仕様書無しさん:04/04/17 16:24
だいたい、整数型に入れてなんかに利用しようと思った時点で、
中の値に依存していることになる。
44仕様書無しさん:04/04/17 16:26
くだらね。
45仕様書無しさん:04/04/17 16:30
>>43
だから、何だよ。その「中の値」って?
46仕様書無しさん:04/04/17 16:38
トゥルー
47仕様書無しさん:04/04/17 16:41
プログラムの中の値も大変だな・・・
48仕様書無しさん:04/04/17 16:43
>>29
> UNIX(shell)も大抵真=1
あ〜…、このへん面倒なんだけど、sh系とcsh系では
コマンド正常終了のときに返るステータスは0。

よく間違われるけれど、シェルスクリプトなんかでよく見るifは
真や偽を見ているのではなく、単に終了コードだけを見てる。0ならthenで0以外ならelse。
真偽条件式ではなく希望の条件のときに0を返すようなコマンドをわざわざ指定してるってことね。

ただ、exprコマンドあたりは内部でも返り値でも「成功」の時は1を、「成功でない」時は0を返す。ややい。
ttp://www.linux.or.jp/JM/html/gnumaniak/man1/expr.1.html
49仕様書無しさん:04/04/17 16:50
>>39
C言語では0でない値はすべて"真"、これはK&Rからきている言語仕様だよ。
ここら辺は実は議論しつくされているんだよ。
以下参照(このページは暗にTRUE=1を推奨しているね)
http://www.catnet.ne.jp/kouno/c_faq/c9.html#0

50仕様書無しさん:04/04/17 16:54
>>49
「考えられる」と「仕様である」の違いが分かるか?
51仕様書無しさん:04/04/17 16:54
>>48
bash の if は 式が exit 0 すると true、0以外で false になるのは有名な話だな。
C言語とは見かけが逆。
52仕様書無しさん:04/04/17 16:59
>>50
3==3 が1である保証ってのがどこにあるのか示して欲しい。
53仕様書無しさん:04/04/17 17:02
>>52
また 2ch において偉大な記録が作られたようだ・・・

過去スレを読まない最短記録が。

http://www.catnet.ne.jp/kouno/c_faq/c9.html#0
54仕様書無しさん:04/04/17 17:05
>>48
(・д・)ポカーン

>expr は以下の終了ステータスを返す:
>0: 式がナルでも 0 でもない
>1: 式がナルまたは 0
>2: 式が正しくない

とか書いてあるんだが…………
55仕様書無しさん:04/04/17 17:05
なんだっていいじゃん大して変わらねーよ。
56仕様書無しさん:04/04/17 17:07
そんなにやりたきゃ TRUE == 1 って T シャツ毎日着てろ。
57仕様書無しさん:04/04/17 17:09
特定の値にしたがってるのは>>1だけだとおもう。
58仕様書無しさん:04/04/17 17:10
>>33が結論。
59仕様書無しさん:04/04/17 17:14
>>58
だから、何だよ。その「中の値」って?
60仕様書無しさん:04/04/17 17:14
中の値が真=実数、偽=虚数にされても依存しない実装ってできるか?
61仕様書無しさん:04/04/17 17:18
なんで虚数なんですか?
62仕様書無しさん:04/04/17 17:22
おまえら、
X=X+(K=29)-(K=28):Y=Y+(K=30)-(K=31)
なんてコードを一回も書いたことがないのかよ?
63仕様書無しさん:04/04/17 17:23
complex型のオーヴァーロードとか(w
64仕様書無しさん:04/04/17 17:24
>>62
誰がそんな糞コード書くかw
65仕様書無しさん:04/04/17 17:25
>>62
ない。なんでN88Basicで←→↑↓なんだよ(w
66仕様書無しさん:04/04/17 17:27
↓(ため)←→(P+K)
67仕様書無しさん:04/04/17 17:30
一画面ゲームも作ったことのないやつらか…フッ
68仕様書無しさん:04/04/17 17:32
じゃ、真=素数、偽=合成数でもいいや。そうされても中の値に依存しない実装ってできるか?
69仕様書無しさん:04/04/17 17:33
TRUEとかFALSEとか、関数仕様に「TRUEを返す」「FALSEを返す」と明記されていない限りつかわねーし。
関数仕様に「0を返す」「0以外を返す」なら「=0」「<>0」だろ(Cなら==0,!=0)
70仕様書無しさん:04/04/17 17:37
同じ0の反対という意味なのに!0と~0の値が違うのはキモイ
71仕様書無しさん:04/04/17 17:40
>>70
>同じ0の反対という意味なのに

・・・勝手に決め付けるなよ
72仕様書無しさん:04/04/17 17:44
>>71
きめ付けじゃなくて事実
73仕様書無しさん:04/04/17 17:48
>>72
~0 は 0 のビットごとの補数
!0 は 0 の論理否定

同じではないと思うが?
74仕様書無しさん:04/04/17 17:50
>>72
つまりあれだ、1 & 2 と 1 && 2 の結果が違うのが納得行かない人?
75仕様書無しさん:04/04/17 17:52
もしかして>>72>>1なのか?
そうなのか?
76仕様書無しさん:04/04/17 17:54
if (&n72 == &n1)
77仕様書無しさん:04/04/17 18:57
率直にboolean型つかえよお前ら
78仕様書無しさん:04/04/17 19:41
falseをフェールスと読んでたバカは素直に挙手
79仕様書無しさん:04/04/17 19:42
finiteをフィニットと読んでたバカも挙手
80仕様書無しさん:04/04/17 20:33
intをイントと読んでたバカ・・・・・・はオレだ。
81仕様書無しさん:04/04/17 21:54
intはなんて呼ぶんだよ?
82仕様書無しさん:04/04/17 22:18
「イント」以外何と読む?
83仕様書無しさん:04/04/17 22:20
インティー
84仕様書無しさん:04/04/17 22:25
イントゥ
85仕様書無しさん:04/04/17 22:36
HWNDは?おれはハウンド。
86仕様書無しさん:04/04/17 23:08
>>78
ノシ
87仕様書無しさん:04/04/18 02:14
で、結局
FALSEが「ファルス」
TRUEが「トルー」
で良いんだな?
話を始める前に、それだけはハッキリしてくれよ。
88仕様書無しさん:04/04/18 02:17
フォルスとトゥルー
89仕様書無しさん:04/04/18 02:23
boolean型?。
なにそれ?
90仕様書無しさん:04/04/18 02:33
お前はブー留台数を師欄馬鹿なのかと
91仕様書無しさん:04/04/18 02:33
お前はブール代数を知らん馬鹿なのかと
92仕様書無しさん:04/04/18 02:40
booleanってなんとなくフランス語っぽいよね。
93仕様書無しさん:04/04/18 02:46
暴利やん
94仕様書無しさん:04/04/18 02:58
だってcには論理型なんて無いじゃないか
95仕様書無しさん:04/04/18 03:40
オレ的にはTRUEは1だな。
96仕様書無しさん:04/04/18 04:57
TRUEが「0以外」なのはたとえば
a = 0x5F;
b = 0x20;
if(a & b){
 ・・・
}
↑みたいにマスク値とのAND演算でビットのOn/Offを
TRUE/FALSEで得る場合などのためじゃないのかな。
97仕様書無しさん:04/04/18 05:02
>>95
やっぱ真はnot 0でしょ、ってことで-1。
でも負数はいやーんなのでsignedにするというか、めんどくさいから例外投げておわり
98仕様書無しさん:04/04/18 05:19
TRUEが-1というのには納得できる理由があるけど、
TRUEが1というのはとくに理由は無くて
たまたまそうしたってだけなんだね。
99仕様書無しさん:04/04/18 05:30
>>96
論理式のときは「真=条件を満たしたとき」だからねー
>>98
not 0=-1だけど、過大解釈すればnot 0は0以外は全部真ってことでいいのでは?
100仕様書無しさん:04/04/18 05:51
>>99
いや、0以外は全部真ってのはいいんだけど、
真を表すというか真を数値にしたとき、定数の値とか、が
1になっている理由は特に無いんだよねってこと。
101仕様書無しさん:04/04/18 05:59
>>100
1以外が欲しいときもあるからとりあえず1ってことで。
なんか戻り値-1だとエラーみたいでいやだし(笑)
というか-1をエラーと返す関数は山のようにある。
案外深い話題なのかも
WG19/やWG21/で聞いて見ると教えてくれるかな
102仕様書無しさん:04/04/18 06:02
>>101
でも本来真は0以外なんだから真を数値として使用するときは
真が1であることを前提にしちゃいけないでしょ?
103仕様書無しさん:04/04/18 06:10
>>102
1だと決め付けるのは論外でしょ
真か偽かってことだけを得るなら、
if (a == 0) return a; /* さようなら */
としてしまえばいいんだろうけど、0を成功としている関数もあるから、やっぱコーディングによるよねー
個人的には0を成功とする戻り値はやらないですけどね。
104仕様書無しさん:04/04/18 07:53
抽象化汁
105仕様書無しさん:04/04/18 07:59
二進数では0以外は1
106仕様書無しさん:04/04/18 08:06
2進数の0を全て0以外すなわち1にしたものを10進数で表すと-1になるね。
107仕様書無しさん:04/04/18 09:05
>>94
C99 には _Bool があるけどな。
108仕様書無しさん:04/04/18 10:33
>>96
とても軽い作業ではあるが、内部では !=0 判定してるけどな。
109仕様書無しさん:04/04/18 10:51
>>106
10進数で表すと-1ってなんだよ。
ちゃんと勉強汁。
110仕様書無しさん:04/04/18 12:34
#define TRUE (1==1)
#define FALSE (1==0)

TRUEが-1でも0でもどっちでも良いです。
111仕様書無しさん:04/04/18 12:34
>>109
はぁ? 0の反対。オールビットONは10進数で-1だろ?
ちゃんと勉強汁。
112仕様書無しさん:04/04/18 12:49
113仕様書無しさん:04/04/18 12:59
114仕様書無しさん:04/04/18 13:01
>>109=>>112か?
次の基本情報技術者試験受けに行けよ。

http://www.kumei.ne.jp/c_lang/intro/no_40.htm
> 0000 0000......0
> 0000 0001......1
> .... ....
> 0111 1111......127
> 1000 0000......-128
> .... ....
> 1111 1110......-2
> 1111 1111......-1

> 超初心者の方は、意外にこれを知らない人が多いようです。
まったくだw
115仕様書無しさん:04/04/18 13:12
signed,unsignedを知らない超初心者ハケーン
116仕様書無しさん:04/04/18 13:13
ついでに補数も知らないんじゃねえの?プ
117仕様書無しさん:04/04/18 13:15
109 名前:仕様書無しさん :04/04/18 10:51
>>106
10進数で表すと-1ってなんだよ。
ちゃんと勉強汁。

-1と言われてなにも思いつかない超初心者晒しあげ
118仕様書無しさん:04/04/18 14:56
面倒だから文字列型にして素直に"true""false"って入れれば良いのに...
119仕様書無しさん:04/04/18 15:48
>>118
メモリ食うから却下
120仕様書無しさん:04/04/18 16:06
>>119
そのような環境での開発、ご愁傷様

>>118
strcmpを使うこととなって、面倒なので却下
enumを使え
121仕様書無しさん:04/04/18 16:14
ビット演算と論理演算の区別も出来ないヴァカのいるスレですね。
122仕様書無しさん:04/04/18 16:26
>>121
そういう話じゃない。
123仕様書無しさん:04/04/18 16:28
論理演算の真は0以外ならなんでもいいんだから
(ビット演算と同じ)全ビット1(-1)でいいじゃんという話。
124仕様書無しさん:04/04/18 16:32
全ビット1=−1なの?w
125仕様書無しさん:04/04/18 16:34
えぇ。多くの環境で採用されているもっとも一般的な型(Cだとint)はそのように実装されています。
126仕様書無しさん:04/04/18 16:54
つまり、全ビット1が−1と同じってのは
実装に依存するってことだよね。(2の補数)

1のようにTRUE=-1が正しいなんて思い込んでいると
いつか痛い目に逢うわけだ。

俺は論理式の判定に1とか0とか-1は使わないな。
127仕様書無しさん:04/04/18 16:57
>>111
>>117
お前ら超初心者だろ。10進数だろうが、何進数だろうが、
2の補数表現で-1だつうの。

勉強しなおせよ。
128仕様書無しさん:04/04/18 17:03
Cの仕様はしらんが、経験上、

#define TRUE 1
#define FALSE 0
#define TRUE (1==1)
#define FALSE !TRUE

-1なんてありえない。
誰かつっこみよろ。
129仕様書無しさん:04/04/18 17:04
>>128

>>121

これが全て
130仕様書無しさん:04/04/18 17:07
C の場合、定義より 1 == 1 は 1 だから、#define TRUE (1==1) は無意味。
C の場合、定義より !(1==1) つまり !1 は 0 だから #define FALSE !TRUE も無意味。
131仕様書無しさん:04/04/18 17:11
C の比較演算子はどれも、成り立つとき整数 1 を返し、成り立たないとき 0 を返す。
だから、こんなんだっていい。

#define TRUE (3 < 5)
#define FALSE (32767 != 32767)

132仕様書無しさん:04/04/18 17:12
>>130

無意味てか、明示的に論理演算の結果であるとことを示す場合に、

#define TRUE (1==1)

にしてもいいんでは?

#define TRUE 1

では、このTRUEが何かわからないので。
133仕様書無しさん:04/04/18 17:12
定義されてる値を気にしてる時点で程度が知れる(w
134仕様書無しさん:04/04/18 17:13
間を取って、

#define TRUE (-1 == -1)
#define FALSE (-1 != -1)

135仕様書無しさん:04/04/18 17:14
なんだって大して変わりやしねーよ
136仕様書無しさん:04/04/18 17:15
>>133
いや、C のマクロには型がないから、一応調べておかないといけないこともある。
137仕様書無しさん:04/04/18 17:16
>>133
お前の程度が一番知れてるw
138仕様書無しさん:04/04/18 17:16
#define TRUE "true"
#define FALSE "false"

だったりしてな。
139仕様書無しさん:04/04/18 17:16
>>131
> C の比較演算子はどれも、成り立つとき整数 1 を返し、成り立たないとき 0 を返す。
普通に考えるとへんだよなぁ。-1にする理由はあっても1にする理由なんてないのに。
140仕様書無しさん:04/04/18 17:17
>>139
じゃあ ISO の規格を決める人になって、変えてください。僕からもお願いします。
141仕様書無しさん:04/04/18 17:19
>>140

どうやったらなれますか?
Cは得意です。
142仕様書無しさん:04/04/18 17:19
>>1->>141

で、 そ れ が 何 か ?
143仕様書無しさん:04/04/18 17:19
>>136
具体的には?
オレ経験ないや。
ライブラリ関数やシステムコールがらみで定義されてるのは使い方決められてる
から迷うことないし。
144仕様書無しさん:04/04/18 17:20
#define TRUE FILE
#define FALSE FILE *

だったりしてな。
145仕様書無しさん:04/04/18 17:22
>>143
無神経に作られた昔のプロジェクトのソースを、仕様変更させられるときとか
大変だったりする。
今は C の案件はやらずにすんでるけど。
146仕様書無しさん:04/04/18 17:22
定数を使えばいいのにね。

const int TRUE = 1;
const int FALSE = 0;
147仕様書無しさん:04/04/18 17:23
>>140
逆切れすんなよw

なんか今の政治は間違っていると言ったときの
>>140のセリフが手に取るように分かるw
148仕様書無しさん:04/04/18 17:24
>>147
てか、本当に -1 になって欲しいんでしょ。
それが一番有効な方法なんじゃない?
もっと楽な方法があったら教えてよ。
世界中のコンパイラの規格変えるんだよ。
大変なことだよ。
149仕様書無しさん:04/04/18 17:25
だだこねてないで、欲しいものは自分の手でつかめ。>>147
150仕様書無しさん:04/04/18 17:26
>>147
少なくともにちゃんねるでごねてても真が -1 に変更されることはないな。
151仕様書無しさん:04/04/18 17:26
>>149
世論という物を知っている? 自分の手で掴むための方法の一つだよ。
152仕様書無しさん:04/04/18 17:27
真てか、比較演算子が成り立った結果が。
153仕様書無しさん:04/04/18 17:27
>>151
じゃあさ、署名運動すれば? 今ならネットで世界中から賛同者を集められるよ。
そのログをもって ISO に乗り込めーー!
154仕様書無しさん:04/04/18 17:27
>>145
そりゃ使い方が判らないのであって、定義の値が判らない事自体が問題なのでは
なかろう。。。。
てゆーかドキュメント無いからソース追ってるだけと違うんか?(w
155仕様書無しさん:04/04/18 17:28
>>150
別に議論してもいいじゃん。
それとも議論を避けたい理由でもあるの?
156仕様書無しさん:04/04/18 17:28
>>155
この議論は無意味だ。
157仕様書無しさん:04/04/18 17:28
>>153
お前がやればーw
158仕様書無しさん:04/04/18 17:29
議論したくない奴はこのスレから消えれば良いだけ。
自分がやっていることはただの荒らしだってことに気づいてね。
159仕様書無しさん:04/04/18 17:29
>>157
俺、別に 1 でもなんでもいいもん。
各言語の仕様書のとおりで文句ないです。
160仕様書無しさん:04/04/18 17:30
つか、Cでやるのは無意味だろ。
新しい言語作って、その真を-1にすればいいだろ。
誰もそんな言語使わないけどな。
161仕様書無しさん:04/04/18 17:30
荒らしは無意味だ。
162仕様書無しさん:04/04/18 17:31
>>160
Visual Basic
163仕様書無しさん:04/04/18 17:31
>>159
君にはなんの考えも無いということですか?
あぶないなぁ。グルがやれと言ったら何も考えずに実行しそう。
164仕様書無しさん:04/04/18 17:31
N-BASIC もやで。
165仕様書無しさん:04/04/18 17:32
>>160
誰もCの仕様を変えれなんて言っていませんが何か?
166仕様書無しさん:04/04/18 17:33
>>163
プログラミング言語の仕様に意義を持つことは、個人の社会的行動とは無関係だ。
167仕様書無しさん:04/04/18 17:34
>>165
Visual Basic / N-BASIC / ...
168仕様書無しさん:04/04/18 17:37
   ネー
  ∧_∧   ∧_∧   \   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ・∀・)  (・∀・ )   |<  集合体の利益のために、
 (    )__(    )  _| │ 個人を犠牲にするということか?
_∧  ∧_∧ ̄ ̄ ̄/.//|  \__________
  ) (    )  /┃.| |
  ̄ ̄ ̄\ )_/   |__|/
      || ┃
      |_)
169仕様書無しさん:04/04/18 17:37
>>166
言語仕様の意味を理解することは重要だと思うが?
言語仕様の意味すら考えないでプログラミングしている奴はただのコーダー。
170仕様書無しさん:04/04/18 17:39
>>139
>-1にする理由はあっても1にする理由なんてないのに

等と言いながら、ぬけぬけと

>>141
>Cは得意です。

と言い切る奴に初めて会った。

・・・俺のコレクションがまた1つ増えた。
171仕様書無しさん:04/04/18 17:40
>>169
どっちもどっちだよ。
172仕様書無しさん:04/04/18 17:41
言語仕様の意味考えた程度では、やはりコーダ。
173仕様書無しさん:04/04/18 17:42
ゴーダチーズってうまいよな。
174仕様書無しさん:04/04/18 17:42
>>170
俺は139だが141じゃないんだが?
しかも書いている文章に意味がまったくないし。
もっと冷静になれよ。君と違ってあいては複数だw
175仕様書無しさん:04/04/18 17:42
もうbool型のサイズ1bitにしてくれ
176仕様書無しさん:04/04/18 17:43
std::vector<bool> 特化があるから、使いまわせば?
177仕様書無しさん:04/04/18 17:43
>>172
反論にはなってないの分かって言ってるんだよね?
178仕様書無しさん:04/04/18 17:45
>>175ばーか
179仕様書無しさん:04/04/18 17:46
PG もコーダも、タイプするのを止めたらお金も止まるだろ。
どっちもどっちだね。
180仕様書無しさん:04/04/18 17:50
>>177
なんか気に障りました?(www
181仕様書無しさん:04/04/18 18:15
>>175
そしたら問題解決だ(笑)
でも sizeof(bool)したらどうなるんだか。floatとかdoubleとかで戻り値帰ってくるとか(笑
182仕様書無しさん:04/04/18 18:27
>>181
1だろ。普通に考えて。それが何か?
183仕様書無しさん:04/04/18 18:31
>>181
それもそうだ。でも、boolは1バイトじゃない
184仕様書無しさん:04/04/18 18:32
>>181
ついでにsizeofの結果の単位をビットに変えれば問題なし
185仕様書無しさん:04/04/18 18:34
>>184
過去のソースの互換性が全て損なわれるなー
186仕様書無しさん:04/04/18 18:36
このスレって何の話をしてるんだ?
TRUEが1なのか-1なのかその他なのか、すべては処理系依存だろう。
それとも「TRUEの値はこうあるべきだ」って話?
だったらTrueの値はTrueだしFalseの値はFalseだろ。
なんでbool型で整数を表現しなきゃいかんのだ。意味がわからない。
187仕様書無しさん:04/04/18 18:39
ここは一足早くGW気分が味わえるインターネットですね。
188仕様書無しさん:04/04/18 19:04
>>186
>なんでbool型で整数を表現しなきゃいかんのだ。意味がわからない。

まあ、アセンブリなどの他言語とのインターフェースとかもあるから
「C言語では論理式の真値として1を返す」ということだけは
知っている必要があるけどね。
189仕様書無しさん:04/04/18 19:12
知ってるも何もCやってたら常識だろ。
190仕様書無しさん:04/04/18 19:52
とりあえず、0以外は真ってことでいいんじゃない?
でもその扱いはプログラマ任せなわけだし。
boolは問題にならんでしょ。他言語とリンクしたりしなきゃ
191仕様書無しさん:04/04/18 19:55
すでに決まっていることを、再定義するかのような表現はやめてくれ
厨房が湧く。
192仕様書無しさん:04/04/18 19:56
FALSEは0で、TRUEは奇数であって欲しい。
193仕様書無しさん:04/04/18 19:58
>>191
ごもっとも。でもじゃあ何なの、このスレ?(笑
>>192
なんで奇数?
194仕様書無しさん:04/04/18 20:04
TRUEは素数であるべき
195仕様書無しさん:04/04/18 20:12
>>194  1じゃだめ?
196仕様書無しさん:04/04/18 20:18
TRUE != FALSEなら値は何でもいいだろ
197仕様書無しさん:04/04/18 20:20
ネタにマジレスかっこいい
198仕様書無しさん:04/04/18 20:23
>>196
それだ!そんで、どっかの厨房がNOT 0だから。。。とかやって戻る。
って俺か!
199仕様書無しさん:04/04/18 20:25
たまに魔が差して、
x = (i == 5) * b;
なんてコードを書いてしまうことがある
200仕様書無しさん:04/04/18 20:32
>>196 ???
TRUE = 3.14・・・
FALSE = 2.7・・・
201仕様書無しさん:04/04/18 20:45
議論することに価値を見出せない奴はくるなよ。
202仕様書無しさん:04/04/18 20:47
別に>>1はCとかのTRUEの定義を変えろとか言って無いじゃん。
-1の方が理屈に合っているってことでしょ?
203仕様書無しさん:04/04/18 20:48
trueは1の方がタイポが少ないね。
204仕様書無しさん:04/04/18 20:52
>>196
TRUE = NOT FALSE の方が良いと思うが?
で32ビットレジスタにFALSE(0)を入れてそれをnotすると(ry
205仕様書無しさん:04/04/18 20:54
>>203
普通はtrueやfalseとタイプして1も0も-1もタイプしないだろ?
206仕様書無しさん:04/04/18 20:55
どうしても 2の補数表現でないと困る人がいますね。
207仕様書無しさん:04/04/18 20:55
>>199
不許可だ
x = (i == 5) ? b: 0;
たいしてかわんないような気もするけど
208仕様書無しさん:04/04/18 20:57
>>206
だってほとんどの言語は2の補数表現じゃん?
209仕様書無しさん:04/04/18 20:57
>>139
最小1ビットで表現できることに気付け。
210仕様書無しさん:04/04/18 20:57
っていうか、VB房はおいてきぼりですか、そうですか。
しかし、なんで、VBは、-1なんかねぇ。
211仕様書無しさん:04/04/18 20:59
>>208
言語の問題ではないことに気付け。
212仕様書無しさん:04/04/18 20:59
Boolが1ビットでいいとか言ってる香具師は、とりあえず
ttp://www.amy.hi-ho.ne.jp/~lepton/program/p3/prog321.html
を読め、と。
213仕様書無しさん:04/04/18 21:00
>>202
途中にいるだろ、この文盲
214仕様書無しさん:04/04/18 21:00
-1というからいけないんだよ。

素直に
00000000 00000000 00000000 00000000B = FALSE
11111111 11111111 11111111 11111111B = TRUE

これでいい。これが10進数で表したときに
-1になるのか4294967295になるのかそれとも
その他の値なのかは言語仕様や処理系に依存。
215仕様書無しさん:04/04/18 21:03
>>212
読んだけど、当たり前の事しか書かれてないんだが。
で、1ビットでいいと思うが。アライメントの都合で、何バイト境界で
置かれるかは知ったことじゃないが、使用するのは1ビットでいいじゃん。
216仕様書無しさん :04/04/18 21:05
「真か偽か」はコンピュータらしく「0か1か」にしろや
217仕様書無しさん:04/04/18 21:06
先に言っとくが、議論するつもりが無い人は消えてね。
218仕様書無しさん:04/04/18 21:12
>>193
ゴロツキのスレです。
219仕様書無しさん:04/04/18 21:14
いちいちこうしときゃいいじゃん。

#if defined(TRUE)
# undef TRUE
# define TRUE (-1)
#endif
220仕様書無しさん:04/04/18 21:14
しん【真】
うそ・いつわりのないこと。まこと。ほんとう。ほんもの。

つまり1
221仕様書無しさん:04/04/18 21:18
そんなに -1 がいいなら BASIC 使ってりゃいいじゃん。
なんでも BASIC だと全ビット 1 の方が効率がいいからそうなってるって
書いてあったぞ。ベーマガがまだ「ラジオの製作」の折込小冊子だった頃。
222仕様書無しさん:04/04/18 21:23
PC-8801FE 欲しかったなあ。あとスーパーMZも。
223仕様書無しさん:04/04/18 21:24
>>222
うちの漫研にあります。両方とも。
2241:04/04/18 21:26
>>220
私のことですか? どうもありがとうございます。
225仕様書無しさん:04/04/18 21:33
このスレにここまでレスが付くとは思わなかった。
226仕様書無しさん:04/04/18 21:34
a != bとあった場合、aのビット反転がbになるとは限らない。
論理式のnotとビット演算のnotは意味が違う。
そもそも、falseやtrueの値にこだわるのがおかしいね。
196の言うとおり、false != trureであればfalseが-1でtrueが0みたいな言語が
あっても問題は無いだろ。

227仕様書無しさん:04/04/18 21:35
>>224
というわけで、TRUE = 1と結論が出たようですw。
228仕様書無しさん :04/04/18 21:38
じゃあ、次は偽(0)がスレ立ててくれw
2291:04/04/18 21:39
>>227
えっ? 私が言っていることが、ほんとうなんでしょ?
TRUE=-1だよ。
230仕様書無しさん:04/04/18 21:43
>>229
そういうことは、-1をGETしてから言ってくれよ。
231仕様書無しさん :04/04/18 21:44
>>229
いや、1 が TRUE は 1 じゃなくて -1 だといってる時点で偽。
232仕様書無しさん:04/04/18 21:46
>>220
つまり1って。それ全然理由になってないじゃんw

真がまこと、ほんものってのはいいとしても、
まこと、ほんものが1とは結びついてないぞ。
233仕様書無しさん:04/04/18 21:48
>>232
ネタにマジレスですか?
234仕様書無しさん:04/04/18 21:49
いや。別にTRUE=1ってのがネタならネタってことでいいけど・・・。
235仕様書無しさん:04/04/18 21:50
void func( int i){
 int (*p)[2] = { "false","true" };
 print( "%d is %s\n",i,p[i!=0] );
}
が動かなくともイイと? >>1
236仕様書無しさん :04/04/18 21:53
>>235
救ってあげようか、どうしょうか。。。寝る!
237仕様書無しさん:04/04/18 21:56
TRUE=-1がネタだろ。
238仕様書無しさん:04/04/18 21:57
もし-1と1が逆の世界だったら>>235

void func( int i){
 int (*p)[2] = { "true","false" };
 print( "%d is %s\n",i,p[(i!=0)+1] );
}
が動かなくともイイと? >>1

と言ってるんだろうな。
239仕様書無しさん :04/04/18 21:58
>>235
236ですが、i!=0 が -1 になるという事ですね。スマソ。本当に寝ます。
240仕様書無しさん:04/04/18 21:58
とにかくCでは0以外は真だからしょうがない。
ポインタ型が一番わかりやすいじゃん。NULL(0)以外はみんな真でしょ。
241仕様書無しさん:04/04/18 21:59
>>240
じゃあ-1でも良かったってことだよね?
242仕様書無しさん:04/04/18 22:04
>>235
構文を抜きにしてもBASICなら実際動かないわけで。
本来言語に依存しないはずのアルゴリズムなのに、
言語に依存する書き方はしたくないね。
243仕様書無しさん:04/04/18 22:04
符号つきのポインタって・・
244235:04/04/18 22:05
>>238
言ってる意味がわからんのだが・・・・
C言語しってるか?
いままでの資産どうするんだよ。

あと、-1とかほざいてる香具師、
unsigned のときどうするつもりなんだ・・・・
245仕様書無しさん:04/04/18 22:06
>>241
そういうことになりますな。
答えを真と偽の二つに分けようとするからこういう議論続いてるんだよね。
アセソブラのときとかさ、よくffffffffhを代入するのに-1を入れたよね。
xor eax,eax
dec eax
とかさ。
246仕様書無しさん:04/04/18 22:07
>>244
誰も今から変えろ何て言って無いんだが?
247仕様書無しさん:04/04/18 22:07
やっぱり真偽値はtと()だよな。
248仕様書無しさん:04/04/18 22:10
>>244
signedだろうがunsignedなら全部ビットが1なことに変わり無い!
249仕様書無しさん:04/04/18 22:11
>>244
> いままでの資産どうするんだよ。
VBはtrue=-1でVB.NETのベータ版で一時的にtrue=1に変更されたが、
同じ理由でVB.NET正式版ではtrue=-1にもどったのを知っているか?
250仕様書無しさん:04/04/18 22:14
負債に利子が付いたということですな。
251仕様書無しさん:04/04/18 22:15
>>250
そういうことじゃないだろボケ。
むしろtrueが1ということの方が負債。
252仕様書無しさん:04/04/18 22:17
いくらtrueが-1が良いと言われても
C言語はもう戻れない所まで来てしまっている。
253仕様書無しさん:04/04/18 22:17
>>248
処理系によっては、-1が符号ビットと1のものもあるし、
そもそも全部ビットを立てることは不可能なものもあるわけだが・・・
254仕様書無しさん:04/04/18 22:20
真偽値の中の人も大変だな
255仕様書無しさん:04/04/18 22:21
>>248
bool func( unsigned int i ){
 return i != -1 ;
}
ふーん。
256仕様書無しさん:04/04/18 22:22
>247
lispientに用はねぇ。帰れ。
257仕様書無しさん:04/04/18 22:22
> そもそも全部ビットを立てることは不可能なものもあるわけだが・・・
最下位ビットが立てることが不可能ならtrue=1は使えない罠。
258仕様書無しさん:04/04/18 22:29
>>255
何が言いたいの?
>>248に反論するのならば-1代入した場合にsignedでもunsignedでも
全部ビットが1なことに変わり無いってことを否定する例を
あげなきゃいけないはずだけど?
259仕様書無しさん:04/04/18 22:33
258の主張にbooleanが含まれてないのは仕様ですか?
260235:04/04/18 22:35
>>257-258
藻前ら、プログラム言語における「数字」を理解しろよ・・・
261仕様書無しさん:04/04/18 22:36
>>259-260
なんでそんな抽象的なことばっかり言うんだい?
論理的な説明は出来ないのか?
262仕様書無しさん:04/04/18 22:37
>>259
booleanがどうあるべきかの話を
booleanを使って定義しても無意味だろw
263仕様書無しさん:04/04/18 22:38
真が-1じゃなくて1である合理的な根拠は>>40だと思うんだけど。

>>42
別に8ビット変数に入れようが64ビット変数に入れようが構わんが、
要するに符号拡張がらみの問題が起こらないってことだ。
264仕様書無しさん:04/04/18 22:41
32ビット変数に-1を入れて、それを64ビット変数に
代入してもやっぱり-1なんだが?
int i=-1; long j=i;
265仕様書無しさん:04/04/18 22:42
ブール代数は 1,0のみ
-1は存在しない。
266仕様書無しさん:04/04/18 22:43
数学的なブール代数の話と
CPUの話をごっちゃにするなよ。
267仕様書無しさん:04/04/18 22:44
曲がりなりにも高級言語でCPUべったりの設計するなよ
268仕様書無しさん:04/04/18 22:47
つーか、ブール代数ってのは2進数なわけで、
ブール代数でも00000000B の NOT は 11111111Bなわけで
それを10進数で表したら全ビットONの値なわけで、
少なくとも1にはならない。
269仕様書無しさん:04/04/18 22:47
>>264
32ビット「符号なし」変数に入れてから64ビットに符号拡張すると
4294967295に化けてしまいます。
符号拡張という用語の意味ぐらいは理解しといてね。

>>266-267
つか、CPUでも、例えばintelだったらjzとjnzといった具合に
ゼロとそれ以外っていう実装をしてるんだけどね。
270仕様書無しさん:04/04/18 22:49
そもそも真偽値を符号なし変数に入れる理由なんてないだろ。
271仕様書無しさん:04/04/18 22:49
>269
実装の問題ではなく、言語設計の問題ですよ。
272仕様書無しさん:04/04/18 22:51
>>268
ブール代数が2進数?はぁ?寝言言ってんじゃねえよ
273仕様書無しさん:04/04/18 22:52
>>270
君はバグを出したことが無いんだね。凄いなあ。
…って、まともにプログラムを書いたことが無いだけだろうけどな。

>>271
だから、言語設計は真を「0以外」としていて、CPUは真を「0以外」と
しているわけだから、結局CPU的にも問題ないじゃんってこと。
274仕様書無しさん:04/04/18 22:52
------------------------------------------------------
ここまで読んだ。


結論。TRUEは-1が正しい。
275仕様書無しさん:04/04/18 22:53
>>272
ブール代数には0と1しかないだろ。言われなくてもそれくらい気づけよ。
276仕様書無しさん :04/04/18 22:53
>>268
なぜ、そんなにビットがあるの?
真か偽かなんだから、1ビットでいいじゃん。
だから、0B NOT 1B
少なくともこの「1」が-1だとは思えない。
277仕様書無しさん:04/04/18 22:54
0と1しかないからこそ、00000000Bとか、11111111Bといったものがありえないんですが。
278仕様書無しさん:04/04/18 22:54
>>273
人格否定は自分が不利になるだけ。
279仕様書無しさん:04/04/18 22:55
>>273
2進法で考えるとスレのタイトルどおりで、それが答えなんだよね。
intel系は符号付かどうかはレジスタではなくてニモニックがそれを判断
してフラグレジスタに書き込んでるし
>>269 の言うとおりなわけだよね
280仕様書無しさん:04/04/18 22:56
>>275
ブール代数には0と1の「二つのみ」を対象とした「数学的体系」である。
二進数は0と1を「任意個数」並べて「可算無限の」整数を
あらわす「数の表現方法」である。
まったく異なる。
281仕様書無しさん:04/04/18 22:56
>>276-277
仕方ないだろ。実装する場合にはint型とかに入れなきゃならないんだから。
1ビット型を用意していないのが悪い。
282仕様書無しさん:04/04/18 22:58
>>280
数学的体系とかぬかすなら最初っから実装の世界に持ち込まないこと。
283仕様書無しさん:04/04/18 22:59
おれは何が正しくてもかまわないんだが、
真偽値のみならず、エラー種別コードを設定する必要があるとき、
エラー種別コードに負数は使わないなあ
284仕様書無しさん:04/04/18 22:59
>>282
言語設計の世界の話をしているんだが。
285仕様書無しさん:04/04/18 23:02
>>278
人格ではなくて経験の話をしている。
まともにC言語の経験があったら>>270のレスは出てこないだろ。
286仕様書無しさん:04/04/18 23:11
>>280
ビット演算は2進数の演算だから~0は-1になる。
論理演算はブール代数の演算だから!0は1になる。
なんだ、自然じゃん。
287仕様書無しさん:04/04/18 23:17
だから、1や0や−1に特別な意味を持たせるなっつうの。
288仕様書無しさん:04/04/18 23:20
------------------------------------------------------
ここまで読んだ。


結論。世の中に正しいものなんて一つくらいしかない。
289仕様書無しさん :04/04/18 23:35
FALSEが0ならなんでもいいや。

でOK?
290仕様書無しさん:04/04/18 23:45
いちいちこうしときゃいいじゃん。

#if defined(TRUE)
# undef TRUE
# define TRUE (-1)
#endif
291仕様書無しさん:04/04/18 23:53
>>290
そして、

a = (b == c);
...;
if(a == TRUE)

というコードでドツボにはまるわけだな。
292仕様書無しさん:04/04/19 00:03
>>291
でも「FALSE が 0 なら TRUE は -1 が正しい」んだから、そのコードの挙動は正しい。
293仕様書無しさん:04/04/19 00:06
>>284
言語設計における数学的妥当性なんて理解できないであろうヴァカはほっとけば。
294仕様書無しさん:04/04/19 01:20
>>291
TRUE と比較するような莫迦は
他のところでもドツボにはまるでしょう。
自業自得。
295仕様書無しさん:04/04/19 02:20
もしTRUEを使わないとしたら

if a=1 then (hit!)
else     (not found)

コーデングしまつね。
296仕様書無しさん:04/04/19 02:51
TRUE は !0 でつが、何か?
297仕様書無しさん:04/04/19 03:04
-1〜1以外の代入を行なってもコンパイルも通ってしまう以上、
FALSE==0
TRUE!=0
これ以外の解釈を行うのは馬鹿以外の何者でもない。
298仕様書無しさん:04/04/19 03:13
297はアスペルガーだな。

そんなレベルの話してないよ。

その理屈ならTRUEが13536644564844とかでもいいわけだなw
299仕様書無しさん:04/04/19 04:16
もうTRUEのために争うのはやめて〜〜
こうしよう間とって木曜日をTRUEにするってのはどうよ
300仕様書無しさん:04/04/19 04:27
>>298
・・・無問題だろ・・・・・・・・何言ってんのこの池沼
301仕様書無しさん:04/04/19 06:31
ここは香ばしいインターネッツでつね
302仕様書無しさん:04/04/19 08:49
>>298
64ビット型ならいいんじゃないの?
303仕様書無しさん:04/04/19 09:17
>>298
非0==真だから、キミの解釈は正しいよ。
304仕様書無しさん:04/04/19 10:22
今更なんだけど、>>1 が C の話をしているとは到底思えない。
3052:04/04/19 11:14
なんでこんなに伸びてるんだ(w
予想外の展開に杵ンカキコ
306仕様書無しさん:04/04/19 11:47
本当に暇なやつらだなあ。
307BASIC使い:04/04/19 12:27
えっ? trueは元から-1じゃん。それが正しいのは言わずもがな。
308仕様書無しさん:04/04/19 13:15
回転ドアといい此処と言い、プログラマは異常に凝り性だと言う事が証明された!
309FORTRAN 使い:04/04/19 13:21
LOGICAL 型は最下位ビットが 0 なら偽、1 なら真で
他のビットなんて見てませんよ?
310仕様書無しさん:04/04/19 13:22
凝らなかったから回転ドアのような事故が起こったのだと思うが・・・。
311仕様書無しさん:04/04/19 13:22
>>308
マ板に来るような連中は無知なくせに語りたがる、ってだけでしょう。
312仕様書無しさん:04/04/19 13:24
>>309
0 FALSE
1 TRUE
2 FALSE
3 TRUE
・・・
ってこと?
313仕様書無しさん:04/04/19 13:24
>>311
2ちゃんねるにくる連中はみんなそうだろw
314仕様書無しさん:04/04/19 13:27
>>311
>>1はその典型だな
315仕様書無しさん:04/04/19 13:32
>>312
です。あと、最上位ビットしか見ないのがあったな…PL/M だっけ?
316仕様書無しさん:04/04/19 13:35
>>311には納得できるが。
>>310にはむり、納得するには、凝ったから事故が回避できたと証明して。
317仕様書無しさん:04/04/19 13:45
>>316
事故が回避できた(起こらなかった)ことの
原因がなんであるかを証明するのは数学的に不可能。

数学的に証明できるのは事故が起きた場合の原因のみ。
318仕様書無しさん:04/04/19 13:48
>>317
では、プログラマの凝り性と、事故回避の因果関係はないと考えてよいかな?
319仕様書無しさん:04/04/19 13:49
>>318
そういうことは>>308に言いなw
320仕様書無しさん:04/04/19 13:51
では、>>318>>308に聞こう。
321仕様書無しさん:04/04/19 14:39
ん?
まてよ?
例えば1ビットで話をしてみよう

0=偽 = 0
非偽=真 = 1

最上位ビットが立ってるとマイナスになる
全てのビットが立ってるから-1
ふむ、でも1だよな

コレはもう
量子コンピュータの領域だ。間違いない
322仕様書無しさん:04/04/19 15:38
0 FALSE
1 TRUE


これでいいじゃん
323仕様書無しさん:04/04/19 15:39
>>321みたいなバカはどうにかならんのだろうか。
324仕様書無しさん:04/04/19 15:42
>>322
いや。

0 FALSE
-1 TRUE

これでいい。
325仕様書無しさん:04/04/19 15:50
今のところ、どの言語でも「真」と判断される値として -1 が推奨されるな。
判ったか?>蟹飯&立地
326仕様書無しさん:04/04/19 16:03
>>323みたいな
正真正銘のクズをどうにかしてほしい

いくら仕事場で使い物にならないからって
2chで弁慶すんなクズw
327仕様書無しさん:04/04/19 16:04
>>321
最後の2行でネタ確定じゃん
ネタをネタと見抜けないバカがくるインターネットじゃないですよ?
328仕様書無しさん:04/04/19 16:07
・煽られて逆ギレ
329仕様書無しさん:04/04/19 16:16
・追いかけて雪国
330仕様書無しさん :04/04/19 16:20
・ふりかけて御飯に
331仕様書無しさん:04/04/19 16:34
・ゆきゆきてネ申軍
332仕様書無しさん:04/04/19 17:05
・全ビット立てて-1
333仕様書無しさん:04/04/19 19:15
奇数偶数じゃないと、1ビットのビットフィールドに入れるのが面倒くさい。
334仕様書無しさん:04/04/19 20:07
>>333
具体的に何が面倒くさいの?
変わらないと思うんだが?
335仕様書無しさん:04/04/19 21:41
unsinedを知らないアフォが多いな。
336仕様書無しさん:04/04/19 21:43
>>335
誰も知らないさw
337仕様書無しさん:04/04/19 21:48
数学的には0がfalse、trueは1。
338仕様書無しさん:04/04/19 21:51
数学の話なんぞしていない。
339仕様書無しさん:04/04/19 21:51
if(5){ 〜 }
とか
if(0x6fc8){ 〜 }
のとき条件は成立するわけだから、
Trueは「非ゼロ」で問題ないじゃないの。
340仕様書無しさん:04/04/19 21:54
trueを実装するときどうするかの話でしょ。
341仕様書無しさん:04/04/19 21:57
>>338
{1,0}に演算+,*を定義する。+の単位元のようなものは0。*の単位元のようなものは1。

>>340
それだけの話だよな。
342仕様書無しさん:04/04/19 22:15
実装による。。。
俺の持ってる論理学の本ならp=p=true(pは任意), false = -trueで定義されてたと思うけどね。
343仕様書無しさん:04/04/19 22:26
つか、TRUEは1のほうが便利だろ?
344仕様書無しさん:04/04/19 22:27
ときに、現在出回ってるプロセッサで、ゼロとの比較以外での
分岐を実装してるものって存在するの?
命令としては存在しても、内部的には引き算の後ゼロと比較するのが
大半だと思うんだけど。

正直、この話で紛糾する理由がよくわからない。
345仕様書無しさん:04/04/19 22:29
-1固執房の書き込みばかり。
346仕様書無しさん:04/04/19 22:56
>>345
>>343のすぐ後で言っても説得力無いw
347仕様書無しさん:04/04/19 23:07
二進数では0か1
BYTEでは0〜255 この基本をベースに考えるべき。

なぜにコンピューターでマイナス値をTRUEに選択するのか・・・

数学では無いとか言ってる人がいたが・・・

文学でもないんだよ。

コンピューターなんだ。

アセンブラ知らんのかな・・・
348仕様書無しさん:04/04/19 23:34
-1を2進数で表記すると、電気的、視覚的に0の対極になるんだよ。

アセンブラっていうより、機械の美学だな。
349仕様書無しさん:04/04/19 23:51
なんだって大して変わりゃーしねーよ。
350仕様書無しさん:04/04/20 00:05
(signed)(TRUE + TRUE + TRUE) == -3
(unsigned)(TRUE + TRUE + TRUE) == 65533

なんかやだ
351仕様書無しさん:04/04/20 00:06
まだ>>1がウロウロしてんのか?
352仕様書無しさん:04/04/20 00:20
真が偽よりも小さいなんて直感に反していておかしい。
353仕様書無しさん:04/04/20 00:47
>-1を2進数で表記すると、

これとかビットを全部立てるとかって奴、馬鹿すぎ

もっと素直になれんかねー

歪んで裏読み過ぎ
354仕様書無しさん:04/04/20 00:53
>>353
同感だ。
負数を2進で表記するなんてソフト開発技術者試験じゃないんだから必要ない
でしょ(笑
最上位ビットが立ってるレジスタを符号付きで認識するニモニックか、
言語系でsigned/unsignedが定義されてるかってことでさ。
355仕様書無しさん:04/04/20 01:19
TRUEとかFALSEとかとは別の問題の話だが、

>>354
>負数を2進で表記するなんてソフト開発技術者試験じゃないんだから必要ないでしょ(笑
signedとunsignedの混在が原因のバグってのはままあることだから
試験じゃなくても認識しておく必要はありますよ。
356仕様書無しさん:04/04/20 01:42
>>355
singned/unsignedの混在は確かにアブナイ。ちと違う話だけどヲレは
嫌いだけど、const_cast(使わざるえないけど)、static_castを
積極的に使えというのも納得できるもんなー。
でもunsignedをsignedと思い込むことのほうがずっと危険だ。
357仕様書無しさん:04/04/20 02:05
論理演算と算術演算が混在してる時点で
何が起きても不思議じゃな…

やめてくれ
やめてくれ
やめてけえれげばげば
358仕様書無しさん:04/04/20 02:10
C++ でさ、

bool a = false;
++a;
if(a)
{
  std::cout << "a == true" << std::endl;
}

ってやると a == true って表示されんのな。
359仕様書無しさん:04/04/20 02:34
うん。
Warningを出してくれるコンパイラも多そうだが、通るには通るね。
ここでaにオーバーフローするまでインクリメントを繰り返したら、falseになったりするのかな。
実装依存、処理系依存なのかな。
boolとintの相互キャストなんてやったことないからワカンネ。
必要なら
int a = ...;
bool b = !!a;
とかするし。


話は変わるが、

bool b;
...

a += b ? 1 : 0;

を、

a += (int)b;

とか書いてしまう大馬鹿者を、ごくごく稀に見かけるが、
コンパイラの最適化によって前者のコードが後者相当に置換される
場合もあるみたいなのが恐ろしい。
少なくともC++においてはtrueは1だから、言語仕様の範疇ってことで
気にしなくていいんだろうけど…。
360仕様書無しさん:04/04/20 11:49
>>359
bool を int に変換すると 0 か 1 のどちらかになることが規格で保証されている。
…という事と、実際にコンパイラがそうやってるかどうかってのは別の話だからねえ。
361仕様書無しさん:04/04/20 13:16
後者を人が書いてしまうのは困ったちんだけど、
コンパイラの最適化については恐れる事ではないんでは?
362仕様書無しさん:04/04/20 21:38
ハード的には電気が流れている状態が0で遮断されてるときが1。
なんかキモイよな。
363仕様書無しさん:04/04/20 21:46
TRUE=-1にすると、下のようなTRUE/FALSE切り替え処理がバグるので不許可。

int flg=0;
flg=1-flg;
364仕様書無しさん:04/04/20 21:47
お前アホウやろ
365仕様書無しさん:04/04/20 21:48
flg=-flg-1;
366仕様書無しさん:04/04/20 22:06
unsigned long l;
unsigned short s;

s = 1 == 1;
l = s;

if( l == ( 1 == 1) )
  ...

ふーん >>1
367仕様書無しさん:04/04/20 22:20
>ハード的には電気が流れている状態が0で遮断されてるときが1。
>なんかキモイよな。

屁理屈ばっか
368仕様書無しさん:04/04/20 22:31
>>363
アホか? trueはfalseの反対。falseはtrueの反対なんだから
true/falseの切り替えはnotすりゃいいだろ。
369仕様書無しさん:04/04/20 22:38
>>362
コンデンサに蓄電されている状態が 1 で、蓄電されていない状態が 0。だから
電流は流れない。
370仕様書無しさん:04/04/20 22:43
そもそも、電流(電荷)の流れと言うのは+から-ではなく-から+に流れている。
つまり流れている状態は-1と言うのが正しい。
371仕様書無しさん:04/04/20 23:10
>363

個人的には、Cなら3項演算子使ったほうがちったぁマシだと思うんだが。

value = value?FALSE:TRUE;

これだったら別にTRUE=-1だろうとTRUE=1だろうと構わん。

>368
NOTって論理演算のNOTか?
372仕様書無しさん:04/04/20 23:17
>つまり流れている状態は-1と言うのが正しい。
なにがつまりだ。。。
373仕様書無しさん:04/04/21 00:28
>>1みたいな人間が使いにくいシステム・行政・サービス・商品を作るんだろうな。

変な哲学が入りすぎ、理屈こねすぎ、深読みしすぎ。
374仕様書無しさん:04/04/21 00:30
>>370
> 「電流(電荷)」

はあ?

定義より、電流はプラス極からマイナス極に流れる。
電荷の流れのことを電流とはいわない。
しかも、コンデンサは静電誘導で電荷を貯えているので、電荷が流れることはない。
電界強度が変化するだけ。
375仕様書無しさん:04/04/21 00:47
まあ、オレ的には・・・

IFを関所として解釈してみ。

1なら通行書1枚あり!OK!通ってよし子ちゃん!>TRUE
0なら通行書ないじゃん!ブー!他当たれや!>FALSE

んでや、通行書複数枚で通すのってダサイじゃん?
通行書0で通すのって逝かれてる。アホ
通行書-1枚で通す関所ってキチガイやな。
やっぱ1で通すのが美しいんやな。

プログラムって感性、本能、芸術、センスが大事なんや!
歌と同じやな。自己表現や!わかるか?
もっと直感・感情のままに打ちこむんや!いいなおまいら!!
376仕様書無しさん:04/04/21 01:01
今度はハードにトコトン弱い人が集まってきますた。
377仕様書無しさん:04/04/21 01:05
ハードよりハートが大事なんや!
378仕様書無しさん:04/04/21 01:06
理系思考と文系思考タイプの衝突か。。。
379仕様書無しさん:04/04/21 01:11
Cで書くのにTRUE/FALSEなんてまったく不要だろ
自前でいちいち定義して使ってんのか?
VBならたまに出てくるけど何も考えず関数仕様にかかれてあるとおりに
解釈して使うだけ
380仕様書無しさん:04/04/21 01:12
レベルの低いVB厨が参戦
お前Cやったことないだろwwwww
381仕様書無しさん:04/04/21 01:32
正しいかどうかの議論は無意味だ
条件を示して、その条件下では適切かどうかを議論しろ
382仕様書無しさん:04/04/21 01:48
>>374
恥ずかしい奴だな。少しは勉強したらどうだ?

http://wannabe.fam.cx/document/el_basis/
電流の方向
昔、電流はプラス電荷がマイナス極に引き寄せられ、マイナス電荷が
プラス極に引き寄せられて移動する現象であると考えられ、
「プラス電荷がマイナス極に引き寄せられる方向を電流の方向」と定めてきた。

しかし電子の存在が明らかになり、実際には「マイナス電荷を持つ電子が
プラス極に移動する現象」であることが判明した。
383仕様書無しさん:04/04/21 01:58
電流はプラス極からマイナス極に流れるってのは(人間の)定義のお話。
電子の流れは無関係よ。
384仕様書無しさん:04/04/21 02:02
中学物理の復習キタ──────(゚∀゚)──────!!
385仕様書無しさん:04/04/21 02:16
>>380
VBは3ヶ月ぐらいしか触ったことないんだが
マジでCでTRUE/FALSE定義して使ってるやつがいるのか?
本来必要のない定義を持ち込んで混乱に陥ってるとしか思えない
386仕様書無しさん:04/04/21 02:20
>385
安心しろ
C99では正式に定義された
387仕様書無しさん:04/04/21 02:26
おおそうなのか
じゃあもう明確に定義されてて
混乱する要因は完全に消滅してると思うんだが
このスレはなにを議論してるんだ?
388仕様書無しさん:04/04/21 02:57
OK!俺の意見にあまりにも無反応なので、こうしよう
サービスとして第ニ・第四土曜日もTRUEとします
389仕様書無しさん:04/04/21 03:00
falseはfalse,trueはtrue。
それ以外に使える言語はあるだろうが、それ以外に使っちゃいかん。
数値意識するような方はプロペラ付の帽子でもかぶってて下さい。
390仕様書無しさん:04/04/21 03:03
定義のない言語にて自己流の定義をしたい
複数の言語で共通の定義をしたい
という無駄骨が好きな人が多いんでしょうか
391仕様書無しさん:04/04/21 03:32
あくまで「オレ流」
392仕様書無しさん:04/04/21 04:28
>>344
何を言わんとしているのかいまいち分からないが一応紹介。

PowerPCの場合、コンディションレジスタには
Negative(N),Positive(P),Zero(Z)のフラグがあり
演算結果の負、正、ゼロに応じてこれらのフラグがセット/リセットされる。

条件ブランチは
 Less than (N=1)
 Less than or equal (P=0)
 Equal (Z=1)
 Not equal (Z=0)
 Greater than or equal (N=0)
 Greater than (P=1)
等の条件が使える。
393仕様書無しさん:04/04/21 05:26
もしYESとNOを数値で表現するとしたらどうなる?
394仕様書無しさん:04/04/21 07:41
>>387
少なくともC言語や特定の言語の仕様について語っているわけじゃない。
TRUEはどういう実装がふさわしいかということ。

だから「ちゃんと決まっているじゃん。」という意見は、
「そんなの分かってんだよ。」ということで問題外。
議論する価値を見出せない奴はこのスレにこなければいいだけ。
395仕様書無しさん:04/04/21 08:16
>>394
ついでに特定のプロセッサってのも付加。
インテルIA-32だと真か偽かの判断はフラグレジスタがビットで持ってる。
そいつをJcc(NEAR系条件付きJMP)で飛ばして行き先が変わる
他のプロセッサはまた違うんだろうな
396仕様書無しさん:04/04/21 08:17
FALSEはFALSE以外の何物でもなく、0にはなり得ない。
それが0だと言うのなら、それはFALSEでは無い。
TRUEはTRUE以外の何物でもなく、1や-1にはなり得ない。
それが1や-1だと言うのなら、それはTRUEでは無い。

実際にメモリ上にどう存在しようがかまわない。
TRUE = NOT FALSE
FALSE = NOT TRUE
の関係が保証されていれば良い。
397仕様書無しさん:04/04/21 08:28
>>393
あえて定義するなら
YES=TRUE
NO=FALSE
だろうね。

OKとかNGとかは紛らわしいんで使わないで欲しい。
398仕様書無しさん:04/04/21 08:33
isdigit()なんかは条件が成立すると比ゼロ。
strcmp()は文字列が一致すると戻り値がゼロ。
似たような条件判定する関数でも、
戻り値の意味が正反対だったりするので
時々こんがらがるときがあるな。
399仕様書無しさん:04/04/21 09:00
そもそも>>362の言ってる事は正しいのか?
ハードに弱いので解説ちぼんぬ
400仕様書無しさん:04/04/21 09:11
strcmp()が返すのは真偽じゃないからだボケ
エラーの時は0と非0色々でややこしいが
401仕様書無しさん:04/04/21 09:14
かなり大嘘
402仕様書無しさん:04/04/21 09:38
偽 = 0
真 ⊃ 1
真 ⊃ -1()



0 != n のとき、n は必ず偽でない。
1 != n のとき、n が真でないとは限らない。
-1 != n のとき、n が真でないとは限らない。



403仕様書無しさん:04/04/21 09:58
>>399
「“電気” が流れる」って辺りが、もう怪しい。
TTL に限っていえば
  ・出力トランジスタに電流が流れ込む→H
  ・出力トランジスタが OFF で、電流が流れない→L
だけど、それより電流が「次の段の入力→前の段の出力」に
流れるのがむしろ気持ち悪いと言えなくもない。
てかそもそも、大抵のチップは MOS (電圧制御) なんだけどね。
404仕様書無しさん:04/04/21 11:55
電気の話はいらない。
グラマなんだし
405仕様書無しさん:04/04/21 12:38
>>386
C99に準拠しているコンパイラはあるか?
406仕様書無しさん:04/04/21 13:00
>>1はVB厨
407仕様書無しさん:04/04/21 13:57
406はC厨
408仕様書無しさん:04/04/21 14:30
>>382
君の勉強が足りない。
定義より、電流はプラス極からマイナス極に向かって流れる。
この場合 2 とおりの可能性がある。
ひとつめ。導線に起電力を接続した場合、導線中の自由電子がマイナス極から
プラス極に向かって移動する。これを、電流がプラス極からマイナス極に流れた
という。
ふたつめ。正電荷が東から西へ移動したとする。たとえば君がポリ塩化ビニルで
髪の毛を逆立たせると君は正に帯電する。君が東から西へ歩くとき、電流が
東から西へ流れたという。

つまり、電荷の正負の符号と電荷の流れる向きとが電流の流れる方向を決める。

ちなみに、メモリはコンデンサだから静電誘導で電荷を貯えている。
だから電流は流れるが電荷は流れない。

409仕様書無しさん:04/04/21 14:32
でんりゅう ひばなが からだをはしーるー
410仕様書無しさん:04/04/21 14:43
>>382
ほほえましく読みました。中学生程度の理科でしょうか。ごく端折って書かれていますね。
間違いではありませんが、電流についてのほんの一部しか書かれていません。
しかも>>374はこれを包含しているし、>>374よりもレベルの低い解説をリンクする
ことはないのでは??

これでも読めよ。
http://www.sakai.zaq.ne.jp/duain107/Cond4/Cond051.htm
411仕様書無しさん:04/04/21 14:58
>>382
電子がマイナス極からプラス極に流れている状態を、
電流がプラス極からマイナス極に流れていると言うのですよ。

HTTP_REFERERと同じくらい恐ろしいです。
412仕様書無しさん:04/04/21 14:59
410必死だな。
コンデンサの話をしているのはお前だけってことに気づけよw
413仕様書無しさん:04/04/21 15:00
>>411
つまり流れている物は世間の認識と逆。-1ということですな。
414仕様書無しさん:04/04/21 15:01
TRUEが-1であるとか気にするのはBASICの

 DEF FNA(X) = 

というやつだね。
サブルーチンに引き数を渡せないBASICで
(救世主的な?)引き数が使えるユーザー定義関数。
これに条件分岐を入れ込んだ式を書いて利用する事も多く見受けられる。

そのBASICのバージョンアップの際にTRUE=-1からTRUE=1になるなんていうのは
言語道断であるが、そうでなくてどちらかに固定されるなら
-1でも1でも良いとは言える。
415仕様書無しさん:04/04/21 15:08
TRUEは-1の方がコンピュータっぽくて良いよ。
416仕様書無しさん:04/04/21 15:09
>>409
じろー ちぇんじー きかいだー

>>413
正孔がプラスからマイナスに流れている、と
見ることもできます。
4171:04/04/21 15:25
いっぱい釣れた!!プ
418仕様書無しさん:04/04/21 15:27
おまえら、良くもまぁこんなくだらない内容で盛り上がれるな…。
なんでそんなに暇人ばっかりなんだよ。w
にんげん、もう少しまともな事で議論すべきだと思うぞ?
いってみれば、おまえら全員バカばっか?
ストレスたまってんのか?
レンコン大好き。
419仕様書無しさん:04/04/21 15:38
水素イオンが東から西に流れるとき、
電流が東から西に流れるという。
420仕様書無しさん:04/04/21 15:44
もうTRUEは-1でいいじゃん。
421仕様書無しさん:04/04/21 15:49
>>94
classを作れはboolean型は作れる
422仕様書無しさん:04/04/21 15:51
量子力学上、

シューレディンガーの猫のように死んでもいるが同時に生きている猫を
再現したければ
生きている 1
死んでいる 0
シューれデンガー状態 2

が正しい。
423仕様書無しさん:04/04/21 15:51
>>421
Cにはクラスはない。
424仕様書無しさん:04/04/21 15:51
>>421
C言語にはclassなんてありませんよ :-)
425仕様書無しさん:04/04/21 15:52
>>422
だれも量子力学の話なんかしてないんだが?
426仕様書無しさん:04/04/21 15:53
>>128
-1はエラー、EOFを表す
427仕様書無しさん:04/04/21 15:53
>>423
構造体、typedefを使え
428仕様書無しさん:04/04/21 15:54
>>425
三進法の話をすれば量子力学の話は必然的に出てくる。

おまえも量子コンピュータに備えて三進法に慣れろ
429仕様書無しさん:04/04/21 15:55
>>427
恥の上塗りですね :-)
430仕様書無しさん:04/04/21 15:57
>>419
ゲルマニウム原子から放たれた自由電子が西から東に移動するとき
尾は東。
431仕様書無しさん:04/04/21 16:00
>>428
お前こそ量子コンピュータを勉強しろ。
量子コンピュータは3進法じゃない。
シュレディンガー状態というのは
0でもあって1でもある状態であって2ではない。
432仕様書無しさん:04/04/21 16:01
最新メモリはガリウム、アルミニウム、ヒ素を使って作られるんだよ
433仕様書無しさん:04/04/21 16:02
> 昔これ(BASICでTRUE=-1になっている)を知った時、
4 ちょうどメモリのパリティについても知った頃だったので
1 信頼性向上の為の策かと思った。
8 なんらかの外敵要因でビットが反転してしまった場合
  1ビットでしか情報を持っていなければ
そ ビットが反転したら真偽が全く反転してしまう。
う それに対し8ビットで情報を保持していれば
か 1つくらいビットが反転しても対処法が考えられると。
も 例えば
ね 00000000BならFALSE
。 11111111BならTRUE
  で処理し、それ以外ならビットで多数決を取って真偽を決めるとか。
434仕様書無しさん:04/04/21 16:03
>>431
2で代用するとわかりやすいw
435仕様書無しさん:04/04/21 16:03
>>429
へぇー、構造体を使うことが問題なんだ
436仕様書無しさん:04/04/21 16:04
なにくだらないことを議論してるんだ?
プログラマなら>>396の解釈で必要十分じゃないか。

論理値を数値に変換するなんて美しくないぞ。
どうしても必要ならそのときどきで
#define BtoV(b) ((b) ? 1 : 0)
または
#define BtoV(b) ((b) ? -1 : 0)
とでもしておいて好きな方使えよ。
437仕様書無しさん:04/04/21 16:05
>>434
それは代用になってない。2は0でも1でもない。
しかし、0でもあって1でもある状態と言うのは、
0でも1でもある。

量子力学は理解しにくいからね。2で代用なんて全く分かってない証拠。
438仕様書無しさん:04/04/21 16:07
>>435がC言語で論理型として機能する構造体を披露してくださいます。
439仕様書無しさん:04/04/21 16:09
わくわく。
440仕様書無しさん :04/04/21 16:17
量子コンピュータが絡んでいるので盛り上っているのかもしれないage
441仕様書無しさん:04/04/21 16:24
量子かわいいよ量子
442仕様書無しさん:04/04/21 16:24
シュレーディンガーの猫の話ならこれがオススメ
http://www.dlsite.com/work/workshow/ds2460
443仕様書無しさん:04/04/21 18:03
計算機屋なら、トライステート使え。
444仕様書無しさん:04/04/21 20:35
計算機屋でないのでトライステートがわかりません!
中間状態があるメリットってなんですk?
445仕様書無しさん:04/04/21 21:02
中間管理職があるメリットと一緒
446仕様書無しさん:04/04/21 21:31
南半球では太陽は西から上るらしいよ。
コリオリの力のせいなんだって。
447仕様書無しさん:04/04/21 21:32
ふと「シュレディンガーのギコ」でぐぐると
やっぱり引っかかるわけだが。
448仕様書無しさん:04/04/21 22:52
これほど空疎な議論のスレもめずらしいな
モー娘のだれが一番かわいいかなんて議論のほうがまだ実があるんじゃねーのw
449仕様書無しさん:04/04/21 23:02
>>448がいまいい事いった!
450仕様書無しさん:04/04/21 23:30
あややかわいいよあやや
451仕様書無しさん:04/04/22 02:17
3時だYo
452仕様書無しさん:04/04/22 02:19
って、まだ2時過ぎなわけなんだが。。。
453仕様書無しさん:04/04/22 06:25
1はスルーの方向で。
454仕様書無しさん:04/04/22 09:52
1はスルー?
ということはTRUEは-1ということだな。
455仕様書無しさん:04/04/22 10:07
>>453

#define THRU 1
なのか、
#define ONE THRU
なのか、はっきりしる!
456仕様書無しさん:04/04/22 10:12
#define SUBE_SUBE
457仕様書無しさん:04/04/22 11:22
>>444
マジレスしちゃうと、「中間状態」ではない。
H でも L でもない、Hi-Z。
458仕様書無しさん:04/04/22 12:53
>>437
2で代用して計算するという方法も悪くはないかと
459仕様書無しさん:04/04/22 16:59
量子コンピュータは、どっちかってーとアナログなんだが。
460仕様書無しさん:04/04/22 17:55
>>444
マジレスしちゃうと、8つの信号で6561通りの
状態を表すことが出来てしまうから。
461仕様書無しさん:04/04/22 21:29
FALSEが43でTrueが-107

いまオレが決めた。みんな従え。
462仕様書無しさん:04/04/22 21:42
>>461
殿、ご乱心召されたか...
463仕様書無しさん:04/04/22 21:48
>>461
まあ、そんな言語がひとつくらいあってもいいかもな。
464仕様書無しさん:04/04/22 23:33
FALSEとTrueなのか
分かりにくい言語だな
465仕様書無しさん:04/04/23 01:57
味方と敵でもいいよな。
正義と悪とか。
466仕様書無しさん:04/04/23 02:03
表と裏
昼と夜。
467仕様書無しさん:04/04/23 02:03
ちんことまんこ
どっちがFALSEでどっちがTRUEですか
468仕様書無しさん:04/04/23 04:53
そりゃやっぱり立ってる方がtrueでしょう。
469仕様書無しさん:04/04/23 10:15
>>467
どっちがどう、ってわけじゃない。論理値は「状態」を示しているからな。
ちんこだって TRUE のときもあれば FALSE の時もあるさ。
そこで真理値表。
♂ ♀ 
F  F  FALSE
F  T  オナーニ
T  F  オナーニ
T  T  セクース
470仕様書無しさん:04/04/23 11:11
やっとマ板らしくなってほっと一息。w
471仕様書無しさん:04/04/23 11:30
なんでBASIC系って-1かと思っていたら
理屈を考えると良く出来ていると思う。
逆に1である理由がわからんな。
472仕様書無しさん:04/04/23 12:12
>>471
…………
473仕様書無しさん:04/04/23 18:59
FALSE = 0
TRUE = (unsigned)1
474仕様書無しさん:04/04/23 23:29
だいたい、NOT 0B なんて式として間違っているだろう。
NOT ってのは、論理演算子なんだから、0B を修飾できるわけね〜よ。
475仕様書無しさん:04/04/23 23:41
いま474がいい事言った...?
476仕様書無しさん:04/04/24 01:42
量子コンピュータを三進法とか言ってる香具師、初めて見た…
477仕様書無しさん:04/04/24 10:42
>>474
BASIC の NOT は、ビット単位の反転を行う算術演算子。
478仕様書無しさん:04/04/24 13:23
ちなみに C では
論理否定演算子 は !x のように使う
479仕様書無しさん:04/04/24 15:50
そもそも算術演算子と論理演算子の二つに分ける理由は無い。
アセンブラだって一種類しか無いじゃん。
スマートじゃないんだよな。そこがCの冗長なところ。
480仕様書無しさん:04/04/24 15:51
大半の計算機側がbez、bnez、その派生命令で条件分岐してる以上、
trueを特定の値に定めようとするのは、言語層なり、もっと上位の
層の好きずきの話。
漏れみたいな下賎な組み込み野郎には関わりのねぇこって。
481仕様書無しさん:04/04/24 16:17
流れぶった切ってすまないが聞いてくれ。
ブール代数、ブール代数と言うが、我々が用いているブール代数は、
実はブール代数の限定された一部でしか無い。

数学的には、
例えば0と-1を除いて恒等写像、0は-1に移り、-1は0に移る写像を考えても、
以前のブール代数から新しいブール代数を導く事が可能だ。

問題は計算機でそれを実現する事が不可能だと言う点に尽きる。
よってブール代数と言わずにブール計算と言うべきなのだ。
人間どうしがお互い、本当には理解する事が不可能な理由もここにある。
482仕様書無しさん:04/04/24 17:17
>>479
それをいえば、構造体もクラスも必要ないな。
構造体やクラスや論理演算子が存在するのは、
それがあった方が分かりやすいからなんだよ。

ああ、喪前には分かりにくいのかもしれんが、
それは喪前が言語設計者が想定したプログラマの標準以上に
ヴァカすぎるからってだけだ。

>>481
厳密に言えば、ブール代数のモデルを数体系の上で構築するときに
偽を0真を1にするのが普通だってことだな。
ブール代数としては>461でも正しいモデルを構築できる。
483仕様書無しさん:04/04/24 17:33
です。

それからC言語の、「FALSEが0で、それ以外はTRUE」の根拠は
ブール代数構造として解釈するよりも、
NULL+平衡二分木構造にあるんじゃないかと言う気がする。

深さnの平衡二分木は(n+1)ビットで表現出来る、
2の(n+1)から1を引いた数の濃度になっているはずだから。

ただ、不勉強なので私はまだ理解してないのですが、
2の補数は一体どんな数学的構造に依存して定義されるのか。
その辺りをもうすこし突っついてみたいなと考えております。
どなたか御指南賜わりたい。
484仕様書無しさん:04/04/24 17:40
>>482
> それをいえば、構造体もクラスも必要ないな。
> 構造体やクラスや論理演算子が存在するのは、
> それがあった方が分かりやすいからなんだよ。
構造体やクラスがあった方が分かりやすい理由はわかる。

では論理演算子があったほうが(正確には論理演算子と
算術演算子の二つに分かれていたほうが)分かりやすい理由なに?
485仕様書無しさん:04/04/24 18:25
>>484
座標系(って用語で良いのかな?)に依存する概念と独立する概念。
違い自身は確かにあると思います。

一枚の絵にする事は、不勉強なのでまだ出来ていませんけれど。
486仕様書無しさん:04/04/24 18:33
>>484
>では論理演算子があったほうが(正確には論理演算子と
>算術演算子の二つに分かれていたほうが)分かりやすい理由なに?

お前のいう、「分かれている」とは一体どういう意味だ?
両方ともC言語上の意味論的には
「整数の引数を1つ若しくは2つ取り、1つの整数を返す」演算、
と見ることができると思うが。
487仕様書無しさん:04/04/24 20:03
>>479
>そこがCの冗長なところ。
他の言語を知らないなら
そう言えばいいのにー
488仕様書無しさん:04/04/24 20:25
>>477
すくなくとも「TRUE = NOT FALSE 」の NOT と
「NOT 00000000B = 11111111B 」の NOT は別の演算子になる。

だいたい「FALSE が 0 なら」とかいう前提は、他のいろんな
暗黙の前提事項を含んでいるわけだよ。それを明らかにせよ。
489仕様書無しさん:04/04/24 21:08
ゼロ以外がそれに相応しくないから。
実装系ごとに値を変えて誰か得するのか。
まさか計算機に専用レジスタ切られてるの知らない奴が
語ったりとかしてないだろうな?
490仕様書無しさん:04/04/24 21:24
>>489
>実装系ごとに値を変えて誰か得するのか。
得をする計算機があるやも知れず。。。
無駄に規制をして計算速度を落とす可能性を生むのは、Cの哲学に反するはず。

>まさか計算機に専用レジスタ切られてるの知らない奴が
「レジスタを切る」という言い回しは初めて聞いたが。
491仕様書無しさん:04/04/24 21:54
>>489
人間が機械に合わせて思考する暮らしって、人間が得をしていると思う?

恐らくIntelやMSの企業戦略の中に
世界中の経済機構をアメリカのWASPが支配する。と言う意識はあると思う。
何故、区間[0,1)の計算機ではなくて、整数型なんだろう。
492仕様書無しさん:04/04/24 22:34
>>490
>「レジスタを切る」という言い回しは初めて聞いたが。

ゼロの使用頻度は極端に高いのでゼロ専用レジスタが
R0や特別枠に用意されるのは珍しくもなんともないと思うんだが
そういう意味じゃなくって?

>>491
>人間が機械に合わせて思考する暮らしって、人間が得をしていると思う?

話が逆。
機械を人間に合わせるためのプログラミングに、現在のコンピュータ
アーキテクチャで不足がないから、置き換えが進んでないってだけの話。
デジタル技術が浸透するに至った歴史からほじくり返すつもりか。
493仕様書無しさん:04/04/24 23:01
シャア専用レジスタ。

3倍速!

しかも赤い!
494仕様書無しさん:04/04/24 23:27
>>493
そのレジスタ買ったあ!
495仕様書無しさん:04/04/25 02:02
>>483
>NULL+平衡二分木構造にあるんじゃないかと言う気がする。
深く考えすぎ。
単に、a==b?みたいな判定をする時にa-b==0?ってやるから
0を特別視するのが便利だってだけ。

>2の補数は一体どんな数学的構造に依存して定義されるのか。
mod 2**n の加法群

>>491
>何故、区間[0,1)の計算機ではなくて、
アナログコンピュータかよ。 オペアンプでも弄ってろ。
496仕様書無しさん:04/04/25 02:21
>>489
>まさか計算機に専用レジスタ切られてるの知らない奴が
>語ったりとかしてないだろうな?

実際には「比較的最近の」プロセッサにはゼロレジスタを持っている物も
珍しくはない、が正解だけどな。
実際、自分自身とxor取ってゼロを作る必要があるプロセッサも多かった。
ハード実装だろうとマイクロコードによる実装だろうと、比較命令の内側では
最終的にゼロとの比較が行われてるのはまず間違いないが。
497仕様書無しさん:04/04/25 02:28
そういえば昔は、ロジックをいじくって判断文を「0かどうか?」という
式にできたらそのほうが処理が速くなるって話をしてたなあ
498仕様書無しさん:04/04/25 02:29
まあ、「aとbは等しいか」は「aとbの差はゼロか」に帰着できるからね。
499仕様書無しさん:04/04/25 02:55
>>492
>話が逆。
>機械を人間に合わせるためのプログラミングに、現在のコンピュータ
>アーキテクチャで不足がないから、置き換えが進んでないってだけの話。

「機械を人間に合わせる」と言う時の「人間」とは何かと言うと、
労働者としてのプログラマであって資本家としてのプログラマじゃない。
その結果、短期的にブームとなるコードは粗製乱造されるけど、
結局は資本の論理に振り回されてしまう。

>>495
>アナログコンピュータかよ。 オペアンプでも弄ってろ。

上に障害物があって底には障害物が無い、鴨居だらけの通路に、
頭をぶつける事無く潜り抜けるのに
適しているのは、身長が低い奴。つまりASCIIコード。

せめてメッシュの細かさで、ろ過させるようにしてやれば、
ASCIIの呪縛に縛られずにすむ。

0.5の子供は左が0.25、右が0.75と言う風に平衡二分木にしてやれば、
ビット数が無限大に行くにつれて実数の完備性から(0,1)へ近付くだろう。
例外は0で、平衡二分木とは関係が無いし、
位相的にも開集合(0,1)の内点ではなく、境界上に位置している。
終端符号としてはふさわしい。
500500:04/04/25 03:23
とった?
501仕様書無しさん:04/04/25 03:29
定規の上に宇宙を並べるって話だな。

で、実装例がどこにあるんだ?
502仕様書無しさん:04/04/25 10:38
実装と言って良いのかは判らない。ただ、
メモリ再割り当てアルゴリズムで新しいサイズは
元の割り当てサイズの倍の領域を割り当てる。と言うのはあった。
それと文字コードそのものに実装も何も無いような気もする。
503仕様書無しさん:04/04/25 10:40
つかまぁ、纏め上げられていない話を幾ら繰り返しても
余りメリットは無いかも知れない。少なくとも自分は余興として
この手の話題を上げる事はあってもスレ立てしたりはしないからね。
504仕様書無しさん:04/04/25 11:10
>実装と言って良いのかは判らない。ただ、
>メモリ再割り当てアルゴリズムで新しいサイズは
>元の割り当てサイズの倍の領域を割り当てる。と言うのはあった。

そ ん な こ た あ 聞 い て ね ぇ よ
メジャーの上に森羅万象を詰め込みきった間抜けはこの世にいるのかっていってんの。
505仕様書無しさん:04/04/25 11:48
モデルは現実を単純化したものだからねぇ。
精密すぎるとモデル化する意味が無いし、単純にするとモデルから漏れた奴が俺達の足を引っ張る。。。。

因果な商売だ。
506仕様書無しさん:04/04/25 16:16
むしろモデル化自体がこの商売の実体だろう。
手段と目的を混同するからデタラメなことになるんだ。
そんなんでも食っていけるんだから、ある意味ボロい商売でもある。

で、話を戻すんだが、trueが-1固定なのはモデルとしてどうなんだかね。
507仕様書無しさん:04/04/25 16:36
実装がどうのこうのと言い出したら、
もうその時点で駄目って結論になってしまうんだよ。
てか488が正解。
508仕様書無しさん:04/04/25 18:55
というか、
TRUE = 0以外全て
FALSE = 0
でないの?
つまり両方とも正解なんでは?
509仕様書無しさん:04/04/26 02:20
>>508

君 の い う と お り だ ね 。 そ の と お り 。

だ か ら 邪 魔 す ん な 。



OK?
510仕様書無しさん:04/04/26 02:52
要するにさ、TRUE は 0 以外の何と比較しても TRUE と等しければいいんだよ。
511仕様書無しさん:04/04/26 02:53
そういうように == 演算子をオーバーロードすれ。
512仕様書無しさん:04/04/26 03:50
そもそもTRUE/FALSEが数値になるということがおかしい。
513仕様書無しさん:04/04/26 04:01
そんなこと言ったってコンピュータは数値しか扱えないよ。
514仕様書無しさん:04/04/26 06:26
数値すら扱えないというのが要では?
515仕様書無しさん:04/04/26 06:27
>>513
ビット列を必ずしも数値と見る必要は無い
516仕様書無しさん:04/04/26 06:39
>>515
それが要だね。訂正。
517仕様書無しさん:04/04/26 09:43
>>512
C なんて、int も char も _Bool も
分類上は整数型だもんねぇ。
そういや FORTRAN の .TRUE. や .FALSE. は
整数に変換できたっけ?
518仕様書無しさん:04/04/26 09:55
別にCの話をしているんじゃないよ。
519仕様書無しさん:04/04/26 15:59
まぁ、お互いに奥の手を隠しながら匿名で議論しても
余り得る事は無いワナ。
520仕様書無しさん:04/04/26 18:12
ていうかこの議論にもなっても無いへりくつ問答に
得る所を求めてるのかと、君は!

釣りスレだとオモッテタヨ
521仕様書無しさん:04/04/26 18:25
>>520

で、見事に釣られてしまった訳だ。
522520:04/04/26 18:28
>>521
そんなわけないだクマー
523仕様書無しさん:04/04/27 21:22
別に-1でも1でもどっちでもいいんだよ。

true falseなんて要するに二進数。
0と-1だろうが0と1だろうが、
どっちもビットが立っているか倒れているか
の二つの状態を表す記号に過ぎない。
○と×でも無問題。
524仕様書無しさん:04/04/27 21:52
もう50回ぐらいループした?
525仕様書無しさん:04/04/27 21:57
10レスで1ループの勘定か。
進行早いなあ。
526仕様書無しさん:04/04/27 22:01
悲観論者:TRUE=0
楽観論者:TRUE=!0
527仕様書無しさん:04/04/27 22:14
まずもって、TRUEもFALSEも二進数じゃない。
528仕様書無しさん:04/04/27 22:22
二進数じゃない。

二進法だ!
529仕様書無しさん:04/04/27 22:48
じゃあ true が 1 で false が -1 ということで。
530仕様書無しさん:04/04/27 23:25
TRUEが1、FALSEが0
真偽には2通りしか必要ないから、本来1ビットで表すべきだろう。
従ってTRUEは-1でも1でも正しい。
531仕様書無しさん:04/04/28 00:25
>>530
メモリが1GBがあたりまえのご時世にビットはナンセンス。
1ビットは扱いが無駄。それに変数は結局メモリでスタックに確保されるから
アライメントは環境依存だけど4とか8バイトだったりする。
でboolはCから見れば1バイト。でもって、!0が真だから-1。unsigned
がいいなら255。ついでに1〜255はみんな真。
532仕様書無しさん:04/04/28 00:39
>>531
set<bool>とかmap<bool>とか。
メモリがいくらあろうが8倍違うのは変わらん。
533仕様書無しさん:04/04/28 00:42
もちろん用途によるが8倍を笑うやつは8倍に泣く。
つまらんな…
534仕様書無しさん:04/04/28 00:51
どうしても1ビットにこだわるならビット配列使えばいいけどさ
535仕様書無しさん:04/04/28 01:00
でもさ、ビルドするとアライメントされるんだよ。意味無いだろ。
__volatile__ とか連呼して最適化を阻む?
536仕様書無しさん:04/04/28 01:32
>>531
!0 は規格により 1 です。
537仕様書無しさん:04/04/28 02:12
FALSEは0であり、TRUEは非0である。


この「命題」を満足させる値は0以外なら何でもよい。
これは「法則」であり、1つの「解」です。


これを無視して、1だ−1だと云ってる人々は、つまり「実装」を
語っていることに気がつかないのかね?

電子の世界で「なんだか不定なんだけど0以外であるTRUE」
ってぇのは存在出来ないわけ。
白黒ハッキリとしてなきゃいけない世界だからね。電気信号的
にさ。
0以外に変化し続ける値というものがあればそれをTRUEと
呼んでもいいかも知れないが。

元々、TRUEを電子世界で完璧に表現することなど不可能な
わけですよ。



だから、実装として非0である値をベンダーが適当に決めて使用
している。それだけ。


つまり、何が言いたいのかとい(ry
538仕様書無しさん:04/04/28 02:19
偽=0、真=非0。非0がどんな値かはベンダが決めればよい話。
実装が気に入らないなら自分で処理系を作ればよい。
539仕様書無しさん:04/04/28 02:44
つまり>>436が結論?
540仕様書無しさん:04/04/28 03:13
>>537
電子の運動量を知るためには、電子がどこにあるのかまったくわからなくなるし、
電子の位置を知るには電子の運動量がまったくわからなくなる。
電流は電子の運動量に帰着し、電圧は電子の位置に帰着するから、
はっきりしたことは何も言えない。
541仕様書無しさん:04/04/28 05:30
ブール代数のIdentity Mapなんてのは関係なく普通に
単位元とかそういうの考えたらfalse 0 true 1が自然。
542仕様書無しさん:04/04/28 05:48
>>537
> これを無視して、1だ−1だと云ってる人々は、つまり「実装」を
> 語っていることに気がつかないのかね?
最初っから実装を語っているのですが何か?
言語も指定されてないのに仕様でも語る気ですか?
543仕様書無しさん:04/04/28 05:59
気に入らない上司のTRUEにTRUEと答えてたらyesマンにしかなれんわな。
544仕様書無しさん:04/04/28 06:27
ここは発想を逆転させてだな。

TRUEを0、FALSEを0以外とするのが一番いい。

だってif(1==1)がTRUEというのは1と1の差が0のときだろ?
545仕様書無しさん:04/04/28 06:36
差を口実にするのは価値観の多様性に反する。
546仕様書無しさん:04/04/28 06:48
意味不明w
547仕様書無しさん:04/04/28 06:49
実装者が 「これが正しい」 と言えば、それが正しい。
548仕様書無しさん:04/04/28 07:18
やっぱり政治スレになったな。権力闘争に励めよ諸君。
549仕様書無しさん:04/04/28 07:52
#define TRUE -1
#define FALSE 0
#define ON 1
#define OFF 0
#define DATA_OK TRUE
#define DATA_NG FALSE
#define RET_OK 0
#define RET_NG 1

あーもう!!!!
550仕様書無しさん:04/04/28 08:00
ハードコーディングは定説だよな。
551仕様書無しさん:04/04/28 08:39
>>542
何における実装を語りたいのかを統一しない状態で話してる癖に
偉そうなことをいうな。

そんなケースバイケースの話してて楽しいのか?そうですか。
邪魔したね。
552仕様書無しさん:04/04/28 12:53
つーか、0ならTRUE、
それ以外はFALSEだろうが。
頭わりぃなぁ。
553仕様書無しさん:04/04/28 12:53
>>552
釣り師。
554仕様書無しさん:04/04/28 13:00
>>542
ネタにマジレスですか。よーし俺もマジレスしちゃうぞ。

>>537
>白黒ハッキリとしてなきゃいけない世界だからね。電気信号的
>にさ。
もう少し勉強しましょう。
555仕様書無しさん:04/04/28 13:17
何て言うか。
せめて岩波数学事典を解説書無しでスルッとよんでスルッと
理解出来る位の人と話したいよね。
556仕様書無しさん:04/04/28 15:50
-1が合理的だったとしても、>>366が実装上良くないすばらスィ例を出してるけど。
1ではこのような事が起こらないと思ふ。
557仕様書無しさん:04/04/28 16:04
>>556

うぜぇから、こっから先 C は除外な。
558仕様書無しさん:04/04/28 17:12
>>556
そういう都合のいい例を出されてもね。
まずunsignedに代入する理由を答えてもらおうか。
そもそもbool型が無いからintなどで代用しているわけで代用する型は一つで十分。
bool(の代用型)をintやlongやshortと比較・代入する必要は無い。
559仕様書無しさん:04/04/28 17:51
>>558
それでは、TRUE が 1 の時の都合のいい例を出してください。
出せないとすると、言語仕様としてはどちらが良いですか?
560仕様書無しさん:04/04/28 17:51
>>555
専用スレ立てれ。
ていうかこのスレわけわかんない。
みんな勝手な方向いて勝手な電波受信してるみたい。
寄生獣の会合?
561仕様書無しさん:04/04/28 18:00
>>558
もちろん必要は無いな。
ところで、バグってのがなぜ起こるか知ってるか?
562仕様書無しさん:04/04/28 18:20
何て言うか。
せめて岩波数学事典を解説書無しでヌルッとよんでポッと
理解出来る位の人と話したいよね。
563仕様書無しさん:04/04/28 19:19
>>561
 6:一見関係ありそうで関係ない話を始める
     「ところで、カモノハシが卵を産むのは知っているか?」
564!563:04/04/28 19:46
7:さらに自作自演でノリ突っ込み
   「知らん。カモノハシが毒針持ってるのは知ってる」
565仕様書無しさん:04/04/28 20:25
>>537
> 白黒ハッキリとしてなきゃいけない世界だからね。電気信号的にさ。
いや、そうじゃなくて集合論的に考えれば問題ないでしょうが。

「Aさんは男だが、Aさん以外の全員は女」
これと同じことだよ。
つまり0でないものはbool値として評価するとすべてTRUE

なぜそれで納得できないのかが不思議だ。
566仕様書無しさん:04/04/28 20:38
>>563,564
いや詭弁は大切だぞ。
詭弁の特徴を使って分析したら、
そもそも新天文対話ですら論破出来るんだよ。
567仕様書無しさん:04/04/28 22:28
Cでは処理速度的にintが最良なんだから、BOOLをintで代用してくれた方が良いって話だろう。
さらに、0か否かの比較が最速だろう。
理解に苦しむ事もない、バグの可能性も最小、糞人間は死んで下さい。




と何となく燃料追加してみるBOOL
568仕様書無しさん:04/04/28 22:37
0は0ではない。-1だ。と更に煽ってみるBOOL
569仕様書無しさん:04/04/28 22:40
>>567
その文にはどこにも-1を肯定も否定している所が無いのだが?
関係ない話題。スレ違い。
570仕様書無しさん:04/04/28 22:43
>>569
0か否かって書いてる時点で、TRUE==-1固定ではないって意味だろ。
氏ね。この文盲め。
571仕様書無しさん:04/04/28 22:45
>>567
そもそも、C言語で0以外の値が論理式では真として扱われるってことは
誰も否定も拒否もしていないと思うんだが。
0==0の値が問題になっているんだと思うけど。
572仕様書無しさん:04/04/28 22:46
>>560
なんか色んなモンが溜まってるんでそ。
中には 「本当に判っていない」 っぽい奴もいるみたいだけど
まー他人事だしな。
573仕様書無しさん:04/04/28 22:48
こんなもんbool型がない可哀想な言語で発生する問題じゃん。
マトモな高級言語ならboolはtrueかfalseの二つしかとらず、
trueの反対はfalse。falseの反対はtrueになる。
574仕様書無しさん:04/04/28 22:48
>>571
>そもそも、C言語で0以外の値が論理式では真として扱われるってことは
>誰も否定も拒否もしていないと思うんだが。
というならば

>0==0の値が問題
はたしてこれを問題にする意味はあるのか?
575仕様書無しさん:04/04/28 22:50
>>573 bool型が無くても一切問題はありません
576仕様書無しさん:04/04/28 22:52
>>575
アセンブラでも一切問題ないもんねぇw

でもね。開発効率やバグの可能性を考えると問題あるんだよ。
一つ勉強になったね。
577仕様書無しさん:04/04/28 22:54
>でもね。開発効率やバグの可能性を考えると問題あるんだよ。
trueやfalseの2種類ごときに問題となるプログラマに一言(ry
578仕様書無しさん:04/04/28 22:55
>>577
アセンブラでやればw
579仕様書無しさん:04/04/28 22:56
つか、
>マトモな高級言語ならboolはtrueかfalseの二つしかとらず
と言う時点で痛過ぎなんだが。
580仕様書無しさん:04/04/28 22:58
>>579
お前のレスのほうが痛いんだが?
あっ。気づいてない? そりゃそうか。
581仕様書無しさん:04/04/28 22:59
TRUEの値を固定したい香具師の脳みそは恐らく1ビット構成なのだろう
582仕様書無しさん:04/04/28 23:00
>>577
そりゃプログラマが気をつければ問題は起きないさ。
でもそんなくだらないことをプログラマが気をつける必要はない。
なんのためのコンピュータだ? なんのための高級言語だ?
583仕様書無しさん:04/04/28 23:01
>>581
同意
584仕様書無しさん:04/04/28 23:01
>>582 気をつけるほどの問題か?
高級言語というのはbool型の有無を論じるレベルの話だったのかよ。
585仕様書無しさん:04/04/28 23:03
とにかく氏ねとか糞とか仰る誰かさんとは話したくない。
586仕様書無しさん:04/04/28 23:05
>>584
気をつけるほどの問題です。
高級言語というがbool型の有無を論じるレベルの話だけだとは言っていません。
587仕様書無しさん:04/04/28 23:06
こっちの方が去って逝けばいいのか。何か酷く疲れた。
588仕様書無しさん:04/04/28 23:09
Y2Kが何故問題になったか。学問と現実には常に乖離がある。
589仕様書無しさん:04/04/28 23:09
>>586
ただの先入観
0か否かの表現とbool型の表現は全く同じ意味だろ。
bool型においても、0:FALSE1:TRUEとわざわざ関連付ける香具師が
一番危険だと思うが?
590仕様書無しさん:04/04/28 23:11
…一応逝っとくけど、555は小学生の頃から機械語やってたんだが…
8085の時代だな。
591仕様書無しさん:04/04/28 23:11
書いてる漏れ自身が言うのもなんだが、誰が誰だか解らんね。
592仕様書無しさん:04/04/28 23:16
>>591
相手をナメなければ、それで済む話だ。
593仕様書無しさん:04/04/28 23:20
>>592
591というか、具体的に誰と何について言いたいのか解らん。
論点より言い回しや体裁を気にするのか?
こんな所(2ちゃん)で何を要求してんだ?
594仕様書無しさん:04/04/28 23:24
>こんな所(2ちゃん)で

だからこそ奥の手、隠し玉が一杯ありそうなんだよな。
ま、祖母の法事が近いのでもうこのスレの事は忘れるわ。
595仕様書無しさん:04/04/28 23:29
例えば>>549をみて、
「ハァ?ただのヴァカじゃん」としか思わん人と
何かしら思い当たるところのあって苦笑する人とでは
話は合わないだろうね。
596仕様書無しさん:04/04/28 23:31
>>594
そもそも論点はなんだったんだか。論点ずらし?
何かを要求しつつ論点が行方不明。
自己の理論を正当化しつつ、裏を返せば相手を非難するくせに消えるとは失礼な奴だ。

597仕様書無しさん:04/04/28 23:37
開発者が常にルールに従ってコーディングできるかというと、そんなことはありえないし、
その問題を解決するというニーズが現実に存在する。
現在の高級言語はそのニーズにこたえるべく改良を加えられている。

もともと、オブジェクト指向が登場した背景の1つには、ソフトウェア資産の複雑性の爆発を
解決する目的があった。今まで作ってきたソフトウェア資産をどう保守し活用するか
ということだ。
598仕様書無しさん:04/04/28 23:48
あれ? だれもいない?
599仕様書無しさん:04/04/28 23:54
つまり、プログラマーは覚えることが少なければ少ないほどいいわけだよね。
TRUEが47で、FALSEが-34であるとか、覚えられないでしょ?
600仕様書無しさん:04/04/29 00:02
TRUEは69だ。互いが求め合うかたちだ。
FALSEは99だ。片方が求めるが片方は拒絶しているかたちだ。
601仕様書無しさん:04/04/29 00:29
互いに求め合うのが真実だと申すか?
602仕様書無しさん:04/04/29 02:39
知識でしか理解してない人と実際の現場の人とで話がかみ合ってないみたいだね。
boolの実装値の影響を受けるコード書く素人は現場では役立たずだからね。
603仕様書無しさん:04/04/29 02:55
>>602
君は>>549をみて「boolの実装値の影響を受ける素人のコード」と思ったんだね?
現場は君が知識だけで考えているよりもずっと複雑なんだが。
604仕様書無しさん:04/04/29 03:05
>>603
>>602のどこに>>549を見たと書いているんだよ。
藻毎の妄想で複雑にされても困る罠。
605602:04/04/29 03:38
>>603
全レスに目を通したので>>549も見たけど、それだけで判断したわけではないよ。
つか、俺自身15年以上現場にいるわけだが。
606仕様書無しさん:04/04/29 03:46
見えてきたぞ。
何かと定数をきっちり割り当てたい奴は、そうでもしないと自己妄想で
何がなんだか分からなくなっていしまうから困るのだろう。

つまり…そうだな、>>581が結論と言う訳だ。

607仕様書無しさん:04/04/29 10:42
>>603

#define TRUE -1

の必要性があれば、別にかまわないけど。

だいたい、#define があるからといって、Cプリプロセッサを
使う環境とはいいきれないし、また、仮に Cプリプロセッサを
使う場合であっても、C/C++言語であるともいいきれないわけだ。

いったい、どういう環境で、どういう必要性があれば、

#define TRUE -1

なんていうコードを書くんですか? 俺には、ただのバカにしか思えないよ。
608仕様書無しさん:04/04/29 12:30
TRUE は 0 以外、 FALSE は 0 じゃん。
違いますか。そうですか。
609仕様書無しさん:04/04/29 12:54
>>1-608 は自作自演ですた。
610仕様書無しさん:04/04/29 14:19
>>608
ここでは正直感想を書くと疎まれるそうでつ。
611仕様書無しさん:04/04/29 14:23
どうせ同じ話の繰り返しなんだから、もっと過去のレスを再利用しようぜ。
だって、俺たちはマだろ?
612仕様書無しさん:04/04/29 14:29
>>607-608
もう過去に同じ議論を繰り返してる
蒸し返すな
613仕様書無しさん:04/04/29 14:37
>>611
1さんがマなのかどうか、まだ判らん。
614仕様書無しさん:04/04/29 14:59
>>612
開発効率性の議論は、過去にはまだ出てきてないぞ。
ちゃんと過去レス読んだかい?
615仕様書無しさん:04/04/29 15:48
>>614
スレ違い。
616仕様書無しさん:04/04/29 18:50
>>614
>>607-608
>開発効率性の議論
してたのか!?そりゃ気づかなんだ。
617仕様書無しさん:04/04/29 20:59
>>616

>>597 からの流れを読んでくれ。
618仕様書無しさん:04/04/29 21:49
>>607
>いったい、どういう環境で、どういう必要性があれば、
大昔に誰かがそう決めた。
理屈ぬきで互換性の確保を要求された。
619仕様書無しさん:04/04/29 22:09
>>618
まぁスレタイ通りだからしょうがないよね。
てか>>1か?
620仕様書無しさん:04/04/29 22:22
>>618
その大昔の誰かが、バカかどうかが、まさに、そこが議論するところでしょう。
その大昔の誰かは、どんな必要性があって、最初にそんなコードを
書いたのでしょうか?
621仕様書無しさん:04/04/29 22:43
>>620
>その大昔の誰かは、どんな必要性があって、最初にそんなコードを
そいつがたまたまベーシック厨だったとか、事情はいろいろありうるな。
でも、そんなことは現在それを保守・拡張する人間には関係ないだろ。
622仕様書無しさん:04/04/29 22:54
>>621
関係ないんじゃなくて、現在の人間に悪い影響を与えているかどうかは重要でしょう。
623仕様書無しさん:04/04/30 00:04
つか、何マジになってるのかと。
620の言う通りだったとして、TRUEが-1に直したとしても
大昔の馬鹿の過ちをそのまま繰り返しているだけなのだ。
と言うのが重要なんだろうに。
624仕様書無しさん:04/04/30 07:48
しょーもない話題で盛り上がっているな。
625仕様書無しさん:04/04/30 20:38
FALSE = 0000 = 0
TRUE = 1111 = -1

ただ、FALSE = 0, TRUE = NOT FALSEとおけることから、
1でも-1でもOKということが判明しますた。
っていうか、こんなことも氏らねー香具師は死ね。マジで。
626仕様書無しさん:04/04/30 21:10
いやいや。

>>600
俺はこれを支持するぞ。
直感的でわかりやすい!(w
627仕様書無しさん:04/04/30 21:25
三つ巴の立場があれば、漏れ様も600に反対はしないが(w
628仕様書無しさん:04/04/30 23:53
>>625
いや、お前が何言ってるのか判らん場合はどうすれば
629仕様書無しさん:04/05/01 00:45
2ch屈指の不毛さを誇る宗教論争スレだな
630仕様書無しさん:04/05/01 01:16
>>629
同意。gotoスレのほうがまだマトモ
631仕様書無しさん:04/05/01 03:45
>>628
判らん事に喙突っ込む方が悪かろう。
632仕様書無しさん:04/05/01 11:38
>>629
これの何処が論争なのかと。
「無知の無知」が語れる事など何も無い筈なのにな。
633仕様書無しさん:04/05/01 12:08
流れを無視して

スレタイ通りに FALSE = 0, TRUE = -1 として全てのコンパイラを統一すると、
それは間違っていると罵る駄スレが間違いなく立つ罠
俺は保守派だ
634仕様書無しさん:04/05/01 16:57
だから何で顔を真っ赤にして書き込んでるのかと。
635仕様書無しさん:04/05/01 17:09
昼間から酒飲んでるからだろ
636仕様書無しさん:04/05/01 17:39
>>635
なぜわかった!?


ふーんだ、どーせ俺は4/29に彼女にふられて
GWが悲惨な連休になったプログラマーだよへへーん(号泣
637仕様書無しさん:04/05/01 23:07
>>636が幸せになりますように。
638仕様書無しさん:04/05/02 12:28
>>636
なに、すぐにデスマに呑まれて、彼女の事なんか忘れられるさ…
639仕様書無しさん:04/05/02 13:06
牛丼が0ならハッピーターンは-1が正しいよな。
640仕様書無しさん:04/05/06 00:16
68000のScc命令。
(実際はccの部分は判定条件に応じた文字が入り、SEQ, SNE, SGE, SLE等のニーモニックになる)

条件ブランチと同様のフラグ判定を行い
結果によって
 条件を満たせば指定オペランドの全てのビットを1にする。
 満たさなければ全てのビットを0にする。

操作対象はbyte。8bit全てのビットをセット/クリアする。
641仕様書無しさん:04/05/06 10:38
もう少しスレが沈んでから再開した方が良いと思うが、とりあえず感想を言う。

スレ主は書物を読んでいるのか、
それとも書物にスレ主の思考能力の底まで読まれてしまっているのか、
まずそれを自覚すべきだ。

書物に読まれてしまうと、読者は書物の指し示した平面内で思考を展開し、
独創力と言うものを持たないまま、
書物の内容に現実を近づけようと努力する事になる。
私にはスレ主が何かの書物に支配されて居るように見えた。

工学書ですらスレ主の思考の視野を支配する力を持つのであれば、
数学書、特に岩波数学事典が持つ支配力を振り払って、
人間が持ちうる価値観の限界まで、一切が遮られる事の無い、
本当の論理の世界に没入する事は難しいだろう。
スレ主は既に価値観を導入してしまった後の
命題計算について論じているに過ぎないからだ。

既に0を神聖視する者達もこのスレに注目している。
私は彼らと正反対の事をこのスレで言うつもりではあるが、
多面的な形勢判断と称する論法に最初から影響されていては
底の浅い議論にしかなるまいと発言するものである。
642仕様書無しさん:04/05/06 11:36
643仕様書無しさん:04/05/06 12:10
>>641
つーか、もはやネタスレなんで。
644仕様書無しさん:04/05/06 12:11
>>628は5流釣り師 | ハフハフうるさい無能デブ
645仕様書無しさん:04/05/06 12:14
>>641 そんな固いこと考えずにふと思ったことを語るのが2ちゃんなんじゃない?
646仕様書無しさん:04/05/06 12:19
>>645
そんなに深く考えることはないことには賛成だが、
ふと思ったことでスレを建てることには反対です。
647仕様書無しさん:04/05/06 12:20
つーか、>641コピペくせぇな。
648645:04/05/06 12:22
>>646 納得&同感
でも糞スレではなかったとおもうけどな、このスレは。
ただそろそろ結論出尽くして同じこと繰り返してるだけの状態にはなった
気はするが・・・
649仕様書無しさん:04/05/06 12:28
>>648
CとVBを理解できてるPGならば、答えは出ている問題だけどな。
漏れは、-1が1111(2)なのはわかるが、-1っていうと否定的なイメージがあるから1にする。
650645:04/05/06 12:35
>>649 沈静化すると思ったが、自ら継続してしまう俺・・・
もっと正確には、プロセッサ、コンパイラとアライメントも関与するから
=2とは限らないよ。全ビットが立っている状態が正しいな=-1
言語内で戻り値の成功をどうするかは規則さえ決めればこのスレのことに
とらわれる必要は無いし、STLでも多くの関数は-1を失敗と返すものもある。
string str = TEXT("あふー");
で、str.find(TEXT("うー"))の戻り値は-1だけど結果は偽に相当するからな
651仕様書無しさん:04/05/06 12:38
>>650
言葉足らずだが、>649は
> 全ビットが立っている状態が正しいな=-1
という意味で言っていると思われ。
652仕様書無しさん:04/05/06 12:43
> str.find(TEXT("うー"))の戻り値は-1
ハァ?
653仕様書無しさん:04/05/06 12:48
>>649==釣り師さま

>>650も釣られているが、その後芋づる式で>>652も釣れたようですね(w
654仕様書無しさん:04/05/06 12:49
>>650
find見つかった位置を返す関数でしょ。
だから失敗が-1なんじゃなくて、
見つからなかった場合が-1。
-1は偽のことじゃない。
655仕様書無しさん:04/05/06 12:56
>>645==650
何か、反論はありますか?
656645:04/05/06 12:59
>>652, >>654
ハァ??
657仕様書無しさん:04/05/06 13:02
645じゃないけど。

>find見つかった位置を返す関数でしょ。
findはfindで、それ以外の何者でもない。
「見つかった位置を返す関数」を現実の計算機で実現するのは不可能だから。
658仕様書無しさん:04/05/06 13:18
std::string::find() で見つからなかったときの戻り値は std::string::npos であり、
その型は std::string::size_type で、 -1 で初期化されているが、
size_type は符号無し型なのでその値は -1 ではない。

まぁごちゃごちゃ言わずにおとなしく定義に従って npos 使っとけってこった。
659仕様書無しさん:04/05/06 13:23
納得。
660仕様書無しさん:04/05/06 13:31
要は規則をどう捉えるかって事だな。
振り出しに戻る。-more-
661仕様書無しさん:04/05/06 14:07
まあ >>645 のような素っ頓狂な連中が沈静化を阻んでいるわけで。
662仕様書無しさん:04/05/06 14:13
FALSE = 0x46414C5345
TRUE = 0x54525545
663仕様書無しさん:04/05/06 14:27
は?649も同類だと思ってたけど。
664仕様書無しさん:04/05/06 14:49
>>649 の「事実と趣味」と
>>650 の「曲解とピンボケな例と嘘」との
共通点が見出せない…
665仕様書無しさん:04/05/06 14:51
まさか649は有益な事を言ってたつもりなの?
666仕様書無しさん:04/05/06 15:06
あーなんか。馬鹿らしくなってきた。
ハミルトニアンとラグランジュアンの
どっちが事実でどっちが嘘か。
みたいな下らん論争を真剣にやってるのか。649は。
667仕様書無しさん:04/05/06 17:43
>>665-666
いや、>>649 がそう読めるとしたら君ら相当アレだぞ。
668仕様書無しさん:04/05/06 18:38
>>663-666
プッ。ちゃんとスレ全体を嫁。
669仕様書無しさん:04/05/06 18:53
>>667
リアル厨房は相手にしないようにすべし。
670仕様書無しさん:04/05/07 01:59
論理演算
ビット演算
補集合
671仕様書無しさん:04/05/07 12:26
>>663-666
バカの集団。
672仕様書無しさん:04/05/07 17:31
>>671
馬鹿の大将
673仕様書無しさん:04/05/07 17:40
>>672
普通にバカ。
674仕様書無しさん:04/05/07 18:40
>>673
エクセレント馬鹿
675仕様書無しさん:04/05/08 10:35
bool aという変数があって、
aがtrueの時はfalseに、falseの時はtrueにするような(反転するような)
代入をしたいのですが、
a=~a;
だと、コンパイラが受け付けてくれません。
どうやったらいいでしょうか。
676仕様書無しさん:04/05/08 10:55
言語は何よ?
a=!aじゃないのか。
677仕様書無しさん:04/05/08 10:56
そういう設計を回避する。
678仕様書無しさん:04/05/08 11:32
>>675
~ と ! の違いを認識すべし。
679仕様書無しさん:04/05/08 11:40
認識不能。abort();
想定外。errno=EDOM;
680仕様書無しさん:04/05/08 15:57
ぜんぜん違う話だが、true があるにもかかわらず false が無い言語って結構あるんだな
nil が false の代わりになっているだけだけど
681仕様書無しさん:04/05/09 05:23
途中までしか読んでないけど、
やっぱ-1って マイナスだからネガティブな感じがしてヤな感じだな・・・
"真"の値としては。
全ビット1はちょっと納得できるけど、-1はなんか嫌だ。

真実は常に明確なものではないという気がするよ。
望んでもいないルールがとびだしてきていつまでも出てくる。
682仕様書無しさん:04/05/09 10:43
>>681がいくらネガティブな感じをもとうが、
C言語では-1も真。
683仕様書無しさん:04/05/09 12:06
そもそも数値化した時点でネガティブ。と言う突っ込み話ですくゎ
684仕様書無しさん:04/05/09 16:57
つーかさ、なんで?
0,1 でいーじゃん
685仕様書無しさん:04/05/09 17:57
684殿の性格、教養、価値観などを具体的にがっちりキャッチせずに
小出しに情報を出しても、会話が成立するとは思えないし。
まぁオンラインで議論すると誤解の方が急スピードで蓄積されると思うよ。
686仕様書無しさん:04/05/09 18:03
C99では0,1の2値しかない_Bool型つくってんぢゃん
なんで逆らうかな?
687仕様書無しさん:04/05/09 18:05
そこでBASICですよ。
688仕様書無しさん:04/05/09 18:06
いや、ここはCOBOLでしょ
689仕様書無しさん:04/05/09 19:36
>FALSE が 0 なら TRUE は -1 が正しい
「正しい」と言いきってしまうのはよくないのでは?
正しいか正しくないかは処理系によると思われ。
690仕様書無しさん:04/05/09 19:47
それ以前に正しい事なんてこの世に一つもない事に気が付いた方が良いかも
691仕様書無しさん:04/05/09 21:00
>>690
お前の言ってることも正しくない
692仕様書無しさん:04/05/10 00:27
693仕様書無しさん:04/05/10 00:29
>>688
だな。COBOLだろう。C言語ではコンパイラの処理系によって
「文法的に正しい記述」でも挙動が期待通りにはならない場合
がある。

# ここで「A == TRUE と書かずに、A != FALSE と書けばいい」
# という輩もいようが、それは言語として誤っていない以上、
# その場しのぎでしかない。
694仕様書無しさん:04/05/10 00:45
おまいら、true、falseってキーワードを用意した理由を察しろよ
695仕様書無しさん:04/05/10 00:45
どっちでも良いけど、675に対する話の続きなのかどうかだけは
ハッキリして欲しい鴨。
696仕様書無しさん:04/05/10 07:48
>>694
TRUEと比較できないTRUEになんの理由があるんだ?w
697仕様書無しさん:04/05/10 12:09
>>672=>>674
必死すぎ(w
698仕様書無しさん:04/05/10 13:11
論理値は比較できんだろ、だいたい。
699仕様書無しさん:04/05/12 12:48
>>698
倒置法にしてカキコする意味はないのでは? :-P
700仕様書無しさん:04/05/12 14:03
さて。激しく盛り下がっているわけですが。(w
701仕様書無しさん:04/05/12 14:59
>>699
してはいけない理由もありませんね :-)
702Kusakabe Youichi:04/05/12 20:03
In article >>701, 仕様書無しさん/sage/701 wrote:
> >>699
> してはいけない理由もありませんね :-)

むりしなくていいですよ :)
703仕様書無しさん:04/05/13 01:34
>>697
全然違いますよ。莫迦ですね。

それより、あの流れで「子供の罵倒」を続けて欲しかったんですが
>>675 にはがっかりです。
704Kusakabe Youichi:04/05/13 12:20
In article >>703, 仕様書無しさん/sage/703 wrote:
> 全然違いますよ。莫迦ですね。
「全然」もなにも、正解と不正解しかないのでは? :-P
莫迦ってなんですか? はつみみです :-)
705仕様書無しさん:04/05/13 13:27
>>704
劣化コピーつまらん
706仕様書無しさん:04/05/13 13:36
>>704
なんでもかんでも詰め込めばいいってもんじゃないな。

お前のセンスのなさがもろばれ。人まねも満足にできねーのか。
707仕様書無しさん:04/05/13 13:38
センス、とは?
708仕様書無しさん:04/05/13 13:43
>>707
ピー子にあって、おすぎにないもの。
709仕様書無しさん:04/05/13 13:45
センス、とは?、とは?
710仕様書無しさん:04/05/13 14:29
ネタにマジレスかっこ悪い。
711仕様書無しさん:04/05/13 14:36
>>706
ム板では上手に偽者やったことがありますが、何か?
712仕様書無しさん:04/05/13 14:40
>>711
ああ、半年くらい前のあれか。下手な偽者もいたはずだが。
1人巧いやつがいたが、まあ、騙されるム板住民は無能だな。
713仕様書無しさん:04/05/13 14:45
>>712
藻前も無能だな。
714仕様書無しさん:04/05/13 15:44
>>711
>上手に偽者やったことが
「上手に」とは誰の判断ですか?また、その判断基準は?
715仕様書無しさん:04/05/13 16:02
>>714
ム板住民が騙されたからだろ。
あの時結構スレ伸びてたから、10人くらい騙されてただろうな。
716706:04/05/13 16:23
俺が3年前にやったときはマ板の奴らがいっせいに釣られてたけどな。
717仕様書無しさん:04/05/13 16:42
>>715
呆れて書き込みをしなかった人が
騙されていたのかどうか、どのように確認されたのでしょう?
718仕様書無しさん:04/05/13 16:44
(・∀・)イイヨイイヨ-
719仕様書無しさん:04/05/13 16:56
720仕様書無しさん:04/05/13 17:05
>>719
書き込みしなかったやつは釣られなかったんだろ。
全員なんてどこにもかいてないじゃん。

あ、つられてくやしかったのか?(ぷ
721仕様書無しさん:04/05/13 17:12
本当のことを、初心者に教えてください。

-1なの?ドッチ?
722仕様書無しさん:04/05/13 17:13
>>721
TRUEはTRUE
723仕様書無しさん:04/05/13 17:14
-1は真と評価されます、それでいいじゃねぇか。
724仕様書無しさん:04/05/13 17:15
>>723
はぁ?
725仕様書無しさん:04/05/13 17:16
>>721
釣り師の居座るスレで議論なんか無駄さ。
書き込みしなかった奴は719の味方だから気にするな。
726仕様書無しさん:04/05/13 17:18
だそうです。
727仕様書無しさん:04/05/13 17:20
>>719の味方がそういうんだからしょうがないよな。なぁみんな!
728仕様書無しさん:04/05/13 17:34
何か楽しい展開だな、お前ら。
結局、馴れ合ってるじゃねーか。

0はFALSEと評価されます。FALSE = 0
それ以外はTRUEです。TRUE = NOT FALSE
でいいんじゃねぇの。といってみるテスト。

何回もでてきてるから釣りとしか思えん。
729仕様書無しさん:04/05/13 17:41
>>728
何回もでてきて、何回も無視されている。
だから「でいいんじゃねぇの。」ではない事が言える。
730仕様書無しさん:04/05/13 17:46
>>729
なるほどな。それはそうだ。
731仕様書無しさん:04/05/13 18:07
どちらが釣りをやっていて、どれが誰だかわからん漏れは逝ってよし?
732仕様書無しさん:04/05/13 18:40
>>731
逝ってよし!つーか、俺もわからんw
!FALSE
734仕様書無しさん:04/05/15 16:53
ここはsigned boolを導入
-true(-1) false(0) +true(+1)
の3値を取る
これでどうだ?
735仕様書無しさん:04/05/15 17:08
ダメ
736仕様書無しさん:04/05/15 17:42
698と同様、下らな過ぎ。
背後にある数理構造の設計をきちんと説明せよ。
737仕様書無しさん:04/05/15 18:03
false 0
true 1
738仕様書無しさん:04/05/15 18:19
H True
L False
Z 他の奴に任せる
X わからん
739仕様書無しさん:04/05/15 19:18
そもそも、なんで神はこの世をTRUEとFALSEにお分けになったのでしょうか?
740仕様書無しさん:04/05/15 19:31
>>739
ZとXもあるぞ。
741仕様書無しさん:04/05/15 19:52
やっぱ、 comprex boolだろ。
1 = true
i = false
あとは適当に使え。
742仕様書無しさん:04/05/15 20:11
if( (!(TRUE != FALSE) == FALSE) != TRUE){
743仕様書無しさん:04/05/15 20:55
complexな。
0 でも -1 でも それ以外でもなくて

FALSE は 'f'  TRUE は 't'

どこぞの軟派な香具師は
TRUE? FALSE? 両方とも0だろ?  だってBOOL型ってtinyint(1) だろ?
とかのたまってるが。

クールな俺様は ビシっと 't' と 'f' だ。 それ以外は認めないゼ?

                                ―とある常駐稼動プロセスの呟き―
745仕様書無しさん:04/05/20 12:47
>>744
無能。
746仕様書無しさん:04/05/20 19:30
>739
いや、論理学だったかではtrueとfalseとundefined(未定義)の三つらしい。
教養の頃、情報の授業で聞いた話。
747仕様書無しさん:04/05/20 22:05
>>740
あとHi-Zがあれば完璧だ。
748hage:04/06/03 22:17
hage
749仕様書無しさん:04/06/03 23:17
>>747
それを Z って書くんだよ。
つか、Z とか X とか意味判ってるか?
真理値表書こうってんじゃないんだぞ?
750仕様書無しさん:04/06/04 07:09
>>749
Z  Zガンダム
X  Xマルチプライ
751仕様書無しさん:04/06/04 08:10
>>750
普通は ガンダムX だろ?
752仕様書無しさん:04/06/04 08:38
TRUE = 0 , FALSE = -1 なシステムもあるよな

ややこしいよ
753仕様書無しさん:04/06/04 14:47
Hi-Sガンダム
754仕様書無しさん:04/06/05 11:22
FALSE が 0 なら ぬるぽ は -1 が正しい
755仕様書無しさん:04/06/05 11:36
なんでそう何でもかんでもモビルスーツに話を絡めようとするんだ?
756仕様書無しさん:04/06/05 11:37
ZERO が 1 なら ONE は 2 が正しい。
757仕様書無しさん:04/06/05 11:38
ONE2 〜永遠の約束〜
758仕様書無しさん:04/06/05 11:47
ぬるぽ
759仕様書無しさん:04/06/05 12:54
>>758
ガッ
760仕様書無しさん:04/06/05 20:11
0とか、FALSEとか〜♪
最初に言い出したのは〜♪
761仕様書無しさん:04/06/06 15:50
true = 0 とするのは鬱。
762仕様書無しさん:04/06/08 16:14
true = 1
false = -1
763仕様書無しさん:04/06/08 20:27
true = 4
false = 5
764仕様書無しさん:04/06/08 23:39
>>763
文字数かよ!
765仕様書無しさん:04/06/09 01:39
素で文字数を表してると気付かなかった。

これはどういうことだろう?
俺より>>764の方がツッコミスキルが上だとでもいうのか?

まさか!それはありえない。と、するとそこから導き出せる結論は一つ。

>>763==764 なのさ!!!!!!!11111
766仕様書無しさん:04/06/09 10:12
ポインタにおけるNULLと!NULLのように、TRUEの定義をとっぱらっちまえば全て解決。
FALSEと!FALSEを使い分けろと。

Bool定義したアホに忠告したれ。
767仕様書無しさん:04/06/09 13:33
バカだな、色んな意味で
768仕様書無しさん:04/06/09 20:45
>>766
全角英文字キモイ
769764 != 763:04/06/10 01:30
>>765
スキル低すぎ


レベル2ぐらいか
770仕様書無しさん:04/06/14 14:20
>>768
たまーに全角英文字使ってるというだけで見下してくる池沼が湧くんだよな。
全角と半角混ぜる方がキモイ。
771仕様書無しさん:04/06/16 01:32
>>770
COBOLer は、さっさとおにぎり。
772仕様書無しさん:04/06/19 01:40
スレが静かなので、もちでもついてます。

     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (.  ゚∀゚))' ))(´∀` )
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
773仕様書無しさん:04/06/19 01:48
バグがでたああ亜あぁぁぁぁぁぁぁぁあぁぁぁdさsdf2qgrfqgf1pf!!!!
  ___   ガスッ
 |___ミ      ギビシッ
   .||  ヾ ミ 、      グモッ
   ∩_∧/ヾヽ       グモッ
   | ,| ゚∀゚). .|  |;,       チュイーン
  / ⌒二⊃=|;,,:+*:';:∴:*¨∵
 .O   ノ :';::';:;:;;ひ;  ;)   ゴショッ
   ) ) ) | ̄⊂    )
  ヽ,lヽ)  |__|(__(_)
774仕様書無しさん:04/06/23 17:31
だからポインタにNULLが入っているかどうか調べる時に
p == NULL とはかいても p != 1 とか p != -1 とはかかんだろ?
bool == false か bool != false だけにしろ! と神はおっしゃっておられます。
775仕様書無しさん:04/06/23 17:38
>>773
チュイーンてなんだ轢かれたかw
776仕様書無しさん:04/06/23 18:00
!p と書くが
777仕様書無しさん:04/06/23 23:59
>>774
ポインタと1や-1は比較できません。

bool == falseやbool != falseはbool型なんだが、それはどうするんだ?
778仕様書無しさん:04/06/24 01:59
>>777
おいおい、アドレスが1のときは1が入ってるだろうが。
779仕様書無しさん:04/06/24 09:09
>>778
“型”という物をご存知ですか?
780not 778:04/06/24 17:28
>>779
“ポインタ型”はアドレスを示す数値ですが何か?
781仕様書無しさん:04/06/24 17:40
void* p;
p != 1;
p != -1;

少なくとも警告は出るだろうな
アンポンタンには分からんか
782仕様書無しさん:04/06/24 21:38
なぜかvoidポインタにされているなw 後付でなんでも追加していいなら動くもの作れるし。

>>781
おまえはクズ。
783仕様書無しさん:04/06/24 23:07
voidじゃないポインタならエラーも警告も出ないとでも?(w
784仕様書無しさん:04/06/25 03:31
TRUE=1だとシックリ来るけどな。
-1だと型が違ったときに表せない場合がある(Sint8->Uint16への暗黙キャストの
場合、-1が255になる)が、1だけはどんな型に変換しても無条件に1だかんね。
785仕様書無しさん:04/06/25 03:49
255になったあとにSint16に変換されたら−1にならんですよ。
TRUEは使わないが一番安定的。

786仕様書無しさん:04/06/25 15:07
>>785
だから、TRUEは-1じゃなくて
>>784
でいいんじゃねーの
787仕様書無しさん:04/06/25 15:07
あれ?
788仕様書無しさん:04/06/25 15:10
>>785
だから >>784 が言ってる事で
いいんじゃねーの?
それともfalseしか使わない方がいいのかな?
789仕様書無しさん:04/06/25 15:28
falseしか使わない方がいいね。ちなみに言ってることは同じだった。(ワラ
790仕様書無しさん:04/07/02 23:59
プログラムなんて書かなきゃいいじゃないの?
791仕様書無しさん:04/07/03 06:14
>>790
どうせ死ぬのになんでおまえは生きているの?
792仕様書無しさん:04/07/03 07:59
>>784
内部形式なんて気にする必要ないだろ?

内部形式が常に1でなければいけないから、1がいいなんて無意味な理屈だよ。
793仕様書無しさん:04/07/03 10:35
-1である必要も無いな
794仕様書無しさん:04/07/03 22:04
でも0はだめだぜ〜。
795仕様書無しさん:04/07/06 02:41
諸君が愛したTRUEは1だった! 何故か!
796仕様書無しさん:04/07/06 23:56
FALSEさ故の過ちさ。
797仕様書無しさん:04/07/07 23:47
その前に、なぜ、trueとfalse が違うものとして定義されなければならないのかを、
論理的に証明してください。
798仕様書無しさん:04/07/07 23:58
区別したかったから
799仕様書無しさん:04/07/08 00:47
なんとなくじゃない?
800800:04/07/08 04:05
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
>>800
ドアフォ。VBは昔からそうじゃ。
802仕様書無しさん:04/07/09 20:42
C++のコードで、
bool flag;
...
if( flag != true ){

}

っていっぱいあるんだけど、よくないよねこれ?
803仕様書無しさん:04/07/09 21:15
>>802
よくないな。

>C++
↑こうじゃなくて  C++ こう書いた方がスマートだよ。 
804仕様書無しさん:04/07/09 21:16
そうか
805仕様書無しさん:04/07/09 21:53
↓こうだろ

if ()
{
}
806仕様書無しさん:04/07/09 22:00
それはいやだ
807仕様書無しさん:04/07/10 03:27
>>906
if()
{
}
808仕様書無しさん:04/07/10 16:17
if (flag == (bool)NULL)
809仕様書無しさん:04/07/12 03:34
if (flag == (bool)NULLPO)
while( galtu(>>809) );

811仕様書無しさん:04/08/14 20:20
>>1
>>-1
812仕様書無しさん:04/08/24 14:55
FALSEが-1なら
TRUEはx≧0
813仕様書無しさん:04/08/24 15:00
-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行で書く必要がある。
815仕様書無しさん:04/08/24 15:49
三項演算子くらい使えよ
816仕様書無しさん:04/08/24 15:54
>>815
if文を使わずにプログラム書くことに意味がある。
参考演算子を使うと、

a = ((b<c) ? ((c==0) ? 5 : 3) : ((c==0) ? 2 : 0));

となって無駄が多すぎるし、if によってパイプライン処理が妨げられて低速になる。
817仕様書無しさん:04/08/24 16:03
単純に置き換えるなら
a = (b<c ? 1 : 0)*2+(c==0 ? 1 : 0)*3;
じゃねぇの?

つか、条件文使ってる時点で低速云々逝っても意味ねー
818仕様書無しさん:04/08/24 16:10
>>814の前半の文には if が含まれないはず。
819仕様書無しさん:04/08/24 16:35
>>816
>if によってパイプライン処理が妨げられて低速になる。
そんなくだらない事を考える暇があるなら
可読性の高いコードを書く事に腐心しましょう。
820仕様書無しさん:04/08/24 16:57
>>819
可読性なんて、コメントをたくさん付けたり適度に改行・空白をあけることで解決します。
計算量の多いプログラムだったら、どうしてもパイプライン処理とかが問題になります。
高速化を馬鹿にするから、最近のプログラムは極端に重くなるんですよ。
可読性に腐心しすぎてスピードが極端に落ちてもいいんですか。

a = (b<c) * 2 /* b<c ならば 2 を加える */
+(c==0)*3;/* c==0 ならば 3 を加える */

とすれば何ら可読性に問題はありません(ここではタブが書けないけど)。
821仕様書無しさん:04/08/24 17:00
そもそも自分で
>TRUE==1 だと、こういう文のときに便利(実際に使われるかどうか分からないけど)
あるかどうか分からない状況を設定して、何を憤ってるのさ。
環境を限定して(trueが1である環境においてのみ)、自分はそうすりゃいいだろ。
だいたい「極端に落ちる」って、さらに何か脳内で条件付加したのか?
822仕様書無しさん:04/08/24 17:33
>>821
具体例は忘れたけど、似たような状況はありました。
条件も何も、
(b<c) と、((b<c)?0:1) では内部的に違うはず。
繰り返し処理(1億回くらいのループ)だとその差は大きいはずです。
823仕様書無しさん:04/08/24 17:41
だーら、
>環境を限定して(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?
826仕様書無しさん:04/08/24 18:05
>>824
なにが?
trueが1な環境ならそうすりゃいい、と言ってるのに、
最初からなんだって?
827仕様書無しさん:04/08/24 20:05
なんでココはこんなに香ばしいのですか?
828仕様書無しさん:04/08/24 22:39
お前が居るからちゃう?
829仕様書無しさん:04/08/25 12:07
>>826
環境に依存しないコードを書くことも大切では?
ある処理系では true==1, ある処理系では true==-1, 別な処理系ではそれ以外となれば
混乱の元かと。
830仕様書無しさん:04/08/25 12:14
突っ込み先は824の方じゃないか
831仕様書無しさん:04/08/25 12:30
>>820
>可読性なんて、コメントをたくさん付けたり適度に改行・空白をあけることで解決します。
やはり、作り捨てコードを書く人は言うことが違いますね。
>高速化を馬鹿にするから、最近のプログラムは極端に重くなるんですよ。
妄想癖もあるようです。

>>827
スレタイからして芳しいですから。
832仕様書無しさん:04/08/25 12:50
>>828
True = Not False = &HFFFF = -1 主義の
VB厨房必死ですね(w
833仕様書無しさん:04/08/25 13:17
>>831
>やはり、作り捨てコードを書く人は言うことが違いますね。
確かに製品としてのプログラムを書いたことはないですけど・・・

>妄想癖もあるようです。
現に、Windowsは重すぎます。
最速のパソコンを使えば殆ど気にならないかも知れないけど、
少し遅めのパソコンを使うと、10個くらいのアプリケーション(メモ帳や電卓を含む)を起動するとすぐに固まるし、
酷いときはマウスカーソルが止まることさえあります。
一つ一つのアプリケーションが使用するメモリが大きすぎるのだと思います。
これはアプリケーションが原因かも知れないし、Windowsが原因かも知れないし、他のところにあるかも知れません。
もしかしたら、今あるGUIなどを実装しようとすればWindows以上に軽くは出来ないのかも知れませんけど・・・
834仕様書無しさん:04/08/25 13:19
アプリのメモリ使用量が原因なら、アプリが原因だろう。
自分で何を書いてるか把握してないのか。
835仕様書無しさん:04/08/25 13:37
>>833
1.読みにくいコード
 1a.改造改造を重ねどんどん重くなってるコード
 1b.素人が書いたやっつけコード
 1c.速度重視で細工しまくったコード
2.読みやすいコード
 2a.考え方が整理されているコード

これを、速度順に並べると、
速------------------------遅
1c>>2a>越えられない壁>>1b>1a

ところが、これに修正1回が加わると、
「速度重視で細工しまくったコード」の速度はガタオチする危険がかなり高い。
つまり、商用のコードは読みやすさ重視で作ったほうが無難。
836仕様書無しさん:04/08/25 13:40
速度とかはどうでもいい、TRUEが-1かどうかを語るんだ
837835:04/08/25 13:42
ついでに言うと、「読みやすいコード」の方が修正も楽だし
修正時の速度低下も(担当が相当バカじゃない限り)かなり低く抑えられる。

「速度重視で細工しまくったコード」は、修正が難しいし
担当が相当賢く無い限り速度低下は防ぎづらい。

「高速化」とか言い出すなら、まずループの中身をシンプルにするとか
見やすくなる高速化を優先した方がいいぞ。

#もちろん、公式がある場合は多少複雑になっても式をコメントに書いてそれ使えば良い。
838仕様書無しさん:04/08/25 13:43
抽象化がキライな人たちが集まっているスレですね。
839仕様書無しさん:04/08/25 13:45
>>820
#素人さんに説明するつもりで書きます。無礼だと思われたならそう言ってください。
演算を行う部分が応答速度低下の原因(ボトルネック)になる事は稀です。
画面へ表示、二次記憶へのアクセス等のIOを行う時間が、メモリ上の操作(演算)の
10*3程度のオーダーで長いからです。
つまり、(一概には言えませんが)IOは演算の1000倍程度以上の時間がかかるからです。
#まあ稀にアルゴリズムレベルで大馬鹿なプログラムがあって、演算がボトルネックとなる例が無いとは言いませんが。

すなわち>>820より.>>819の見解のほうが職業PGとしての共通認識として正しいのです。
840仕様書無しさん:04/08/25 16:40
なんでboolean型と整数型が可換であることを前提に議論してるの?
841仕様書無しさん:04/08/25 17:30
あえて不可換にする必要がないから。
今時 boolean 型と整数型が不可換の言語なんて終わってると思う。
それが許されるのはちょっとしたスクリプト用の言語くらい。
842仕様書無しさん:04/08/25 17:39
今時が何か関係あるのだろうか。
843仕様書無しさん:04/08/25 21:29
>高速化を馬鹿にするから、最近のプログラムは極端に重くなるんですよ。
高速化を莫迦にしているのはお前だ。
それを語るなら、機械語の知識くらい身につけてからにしろ。

偽=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, ・・・

最近アセンブラを使っていないので忘れてました。逝ってきます
845仕様書無しさん:04/08/25 21:49
逝ってきます
846仕様書無しさん:04/08/25 21:52
; 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;
だろ。
848仕様書無しさん:04/08/25 23:35
もうボトルネックはCPUじゃないもんね。
849仕様書無しさん:04/08/25 23:59
>847
b,cがintかunsigned intかはどこにも書いていないのだが、
signedだとすると、b=1,c=0x80000000Lの時など正しい解を与えない。
unsignedだとしても、b=0x80000002L,c=1の時などに、やはりアウト。
850仕様書無しさん:04/08/27 12:19
藻前ら、アンドレ以下だな。
851仕様書無しさん:04/08/27 20:36
どうでも良いんだが、

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は変。
どう?
853852:04/08/27 23:59
> 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
となる。
もちろん、この同値関係は数学で言うイコールではない。
855仕様書無しさん:04/08/28 00:23
ぶっちゃけどうでもいいんだけど、どうしよう
856仕様書無しさん:04/08/28 00:38
>>855
とりあえず氏ね。
857852:04/08/28 00:53
>854
論理式とブール代数をごっちゃにしないでほしい。
5はれっきとした(ビット演算による)ブール代数の元。
ま、論理演算の方はa==bの変わりに(!a||b)&&(!b||a)を
使えばブール代数になるからいいんだけど(854の〜)
Cにもともとある==でブール代数になってくれればすっきりしてるんじゃない?
858仕様書無しさん:04/08/28 01:08
>>857
論理式≠ブール代数
ビット演算=ブール代数
ということ?

全ての整数(int型変数)は論理式におけるブール代数の元だと思うが?
もちろん、「=」ではなくて「〜」で考えればの話。
859仕様書無しさん:04/08/28 01:20
なんでfalseがゼロなのかと言う疑問に、合理的な回答はありますか?
trueがゼロでもいいじゃん。
と言うか、そっちの方が便利な事って結構多いと思いませんか?
860仕様書無しさん:04/08/28 01:30
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
863852:04/08/28 01:52
861は852ね。
>858
>論理式≠ブール代数
うーむ比較のしかたがよくわからんがとりあえずノリで答えれば

Cの論理式=ブール代数 modulo 「〜」
Cのビット演算=もろブール代数
864仕様書無しさん:04/08/28 01:59
ぜんぜん話についていけない
なんで論理型で整数を表現しようとしてるの?
っていうか、何の話してる?

865852:04/08/28 02:11
自分でもわからなくなってきたので整理してみた。

int modulo 「〜」だと論理式を(実質)2元のブール代数で
解釈できてうれしい。そのかわり元の比較に==はつかえない。
「aとbが両方とも真か偽」っていうのをa==bって書くとバグる可能性がある。

ビット演算だとintは素でブール代数になり真が-1となる。
だけど真と偽の他に元がいっぱいあってなんだか変。5って何よ?
866仕様書無しさん:04/08/28 13:17
>>864
逆だ逆。論理型を整数で表現してるんだ。
C厨が好きな下らない議論だよ。
867アンチC厨は氏ね:04/08/28 15:06
>>866
なんだと(@u@)
868仕様書無しさん:04/08/28 15:18
でも言語上の型が「論理型」でもメモリ上ではバイナリの
数値じゃないの?
869仕様書無しさん:04/08/28 15:30
バイナリはバイナリ
数値は数値
論理型は論理型

メモリ上では電気信号
870仕様書無しさん:04/08/28 15:44
>>869
屁理屈っぽい
871仕様書無しさん:04/08/28 17:08
ちゃんとした C プログラマなら
C に論理型などという型はない事は
理解されている事と存じます。

因みに _Bool は
「少なくとも0或いは1を格納できる整数型」
です。
872仕様書無しさん:04/09/01 09:44
>>871
論理型はないっていうか、表現できないから代替として
実装している、だね。

そもそもさー。スレタテはこの議論でたとえば題名通り
のコンセンサスを得たくてたてたんだろうから、その先
の「真意」があるはずなんだよね。

そ れ っ て な に ?
873仕様書無しさん:04/09/01 10:09
人間がコンピュータに合わせる時代は終わった。
論理型ぐらい実装しろや。
874仕様書無しさん:04/09/01 11:27
>>873
1bit処理のCPUを作れということですね
875仕様書無しさん:04/09/03 22:22
>>874
むしろ、 1bit だけ。
876仕様書無しさん:04/09/05 04:34
たぶん、>>873はコンピュータが論理回路のカタマリだということを知らない専門学校出の兵隊なんだろ。
877仕様書無しさん:04/09/06 14:55
論理型と論理回路って全然違くないか?
8781@偽者:04/09/09 12:35
まぁ・・・どうでも良いわけだが
879仕様書無しさん:04/09/16 14:33:17
せっかく32bitあるんだから、ファジィ論理実装しようぜ。

a ∧ b = min(a, b)
a ∨ b = max(a, b)
¬a = UINT_MAX - a
true = UINT_MAX
false = 0
880仕様書無しさん:04/09/16 21:41:37
# define TRUE rnd * 0xff
# define FALSE rnd * 0xff
881仕様書無しさん:04/09/17 09:04:24
○if(b == FALSE)
○if(b != FALSE)
×if(b == TRUE)
882仕様書無しさん:04/09/17 11:40:19
if( b )
if( !b )
883仕様書無しさん:04/09/17 11:40:39
おマイら、も少し柔軟性を持たせレ。

extern long TRUE;
extern long FALSE;

完璧。
884仕様書無しさん:04/09/17 21:19:19
>>883
printf("%s", TRUE);

フフフフ
885仕様書無しさん:04/09/18 16:55:29
お前ら馬鹿じゃねーのww
FALSEが0ならTRUEは1だっつーの(ワラ
頭悪ぃーなお前らww
886仕様書無しさん:04/09/18 17:17:52
どうでもいい
こんなこと議論してるひまがあったらプログラミングしたほうが有意義だろ?
887仕様書無しさん:04/09/18 21:01:45
「ファルス」が 0
「つるつる」が 1

それでいいんじゃないの?
見事に名が体を現しているし。
888仕様書無しさん:04/09/19 08:49:08
>>887
おもしろくねんだよ
ってゆーか超くだらねーし
お前頭の中いったいどーなってんのよ
889仕様書無しさん:04/09/19 10:15:25
>>887
俺の周りにも false を「ファルス」と読む奴が多いんだけど、
発音記号見る限り、あえてカタカナで書くなら「フォールス」だよな?
http://www.excite.co.jp/dictionary/english_japanese/?search=false&match=beginswith&dictionary=NEW_EJJE&block=37667&offset=530
890仕様書無しさん:04/09/19 12:01:23
アフォくさ。
マシン語の知識も無いのに
「自分はプログラマのつもり」の奴大杉。
891仕様書無しさん:04/09/19 13:09:52
アホくさ。マシン語が面倒くさいから上級言語開発したのに
「自分だけがプログラマのつもり」の奴お前だけ。
892890:04/09/19 13:23:34
>>891
だからぁ・・_| ̄|○
893仕様書無しさん:04/09/19 13:32:14
ひぃっ!>>890はヲタクだった!ヲタクにレスしちゃった!
89425:04/09/19 14:39:00
ひぃっ!      ひぃっ!      ひぃっ!      ひぃっ!
  ひぃっ!      ひぃっ!      ひぃっ!      ひぃ
    ひぃっ!      ひぃっ!      ひぃっ!      
      ひぃっ!      ひぃっ!      ひぃっ!    
っ!      ひぃっ!      ひぃっ!      ひぃっ!  
ひぃっ!      ひぃっ!      ひぃっ!      ひぃ
  ひぃっ!      ひぃっ!      ひぃっ!      
    ひぃっ!      ひぃっ!      ひぃっ!    
      ひぃっ!      ひぃっ!      ひぃっ!  
っ!      ひぃっ!      ひぃっ!      ひぃっ!
ひぃっ!      ひぃっ!      ひぃっ!      ひぃ
  ひぃっ!      ひぃっ!      ひぃっ!      
    ひぃっ!      ひぃっ!      ひぃっ!    
      ひぃっ!      ひぃっ!      ひぃっ!
895仕様書無しさん:04/09/19 15:04:35
>>893
あーあ、感染っちゃったかもよ?
896890:04/09/19 15:32:02
どうして“0”と“0以外”なのか
説明できないだろ。

急いで調べてみな。
897仕様書無しさん:04/09/19 15:38:37
考えるの面倒だからユーザに選ばせろ
898890:04/09/19 15:47:02
「++は1加算で、--は1減算」程度の知識しかないだろ。

急いで調べてみな。
899仕様書無しさん:04/09/19 16:05:46
うるせーよ馬鹿。周りに講釈たれられる相手がいないからこんなところでオナニーしてんだろう。
900仕様書無しさん:04/09/19 16:59:27
>>898
ウゼーなお前。
さっさと解説しろや。
901仕様書無しさん:04/09/19 18:06:16
>>896
もしかして、C の話をしてますか?
だとしたらかなり無知ですね。
902仕様書無しさん:04/09/19 19:04:04
0と0以外というより、0がFALSEだから「0でない」はTRUEってだけでは
903仕様書無しさん:04/09/19 21:49:45
>>902
正解。
904887:04/09/19 22:24:16
>>888
>お前頭の中いったいどーなってんのよ
こんな感じになっていますが、何か?

ファルス: o0o

つるつる: (1)
905仕様書無しさん:04/09/20 05:05:24
VC6だと、windef.hで、
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
typedef int BOOL;
となってるな。
ちなみに、boolは1バイトで、true==1, false==0だった。
bool型の変数を++は出来るが、--は出来ないらしい。++した場合は常にtrueだってさ。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclang/html/_langref_bool.asp

C++の仕様ちゃんと読んどくか、、、
906仕様書無しさん:04/09/20 12:48:56
お前ら頭悪すぎww
TRUEは1で、FALSEが0。分かる?
907仕様書無しさん:04/09/20 13:15:28
TRUEかFALSEかの違いはCCRの Z フラグがたっているかいないかだよ。 
908仕様書無しさん:04/09/20 13:30:14
ほかにもCCRのCフラグとかで代用ができる。
スーパーインテリなCやC++ユーザーなら理解できるだろう。

庶民派なVM言語の人間はだめだな。
909890: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自体が超高速だから、あんまり細かいこと気にする必要もないか。
910仕様書無しさん:04/09/20 18:43:45
TRUEはオン、FALSEはオフ
911仕様書無しさん:04/09/20 18:57:20
えーとここは「最高に頭悪い発言をするスレ」になったんだよね?
空気読めなくてごめん。
912仕様書無しさん:04/09/20 19:35:06
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自体が超高速だから、あんまり細かいこと気にする必要もないか。
913仕様書無しさん:04/09/20 20:15:57
890でもJava厨よりは幽愁。
914仕様書無しさん:04/09/20 20:25:10
お前らプログラミングした事無いっしょ(プゲラ
915仕様書無しさん:04/09/21 02:21:07
「プゲラ」 って頭悪そうだよな
916仕様書無しさん:04/09/21 12:54:01
>>909
>CPUには「0か0でないか?」を判定する能力しかないのだよ。
C だけでなく、プロセッサの知識もなかったようですね。
>で、賢いコンパイラなら++や--の場合は、この高速な処理を使うのだよ。(
コンパイラの知識もないようです。
>それにCPU自体が超高速だから、あんまり細かいこと気にする必要もないか。
速度的にシビアなアプリケーションの実装経験もないんですか?

ないないづくしですね。
917仕様書無しさん:04/09/21 13:27:08
とりあえず890のいうCPUはどこのメーカのCPUだ?
918仕様書無しさん:04/09/21 15:45:46
>>909
初心者にわかりやすくするためとはいえ、不正確な表現は良くない。
#最後の2行で素人であることがバレテいるぞ

>>916
>速度的にシビアなアプリケーションの実装経験もないんですか?
寡聞にしてインクリメントの際の命令が問題になるほどの
「速度的にシビアなアプリケーション」を知らないw。教えてクレw
#そんなもんネエヨ。君も素人だね
919仕様書無しさん:04/09/21 16:47:09
>>918
自演乙。
920仕様書無しさん:04/09/23 11:42:56
>>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
923仕様書無しさん:04/09/23 22:51:22
画面に表示された文字が0だからといって、実装が0とは限らんなぁ。
そもそも画面に表示された0の文字コードは0じゃないし。
924仕様書無しさん:04/09/24 00:07:10
>>923
そうなんだよね。
printf("%d\n", 0);
とやっても、実装により 0 の内部表現は 0 とは限らないし。
925仕様書無しさん:04/09/24 00:08:02
a++とか--bとかはinc,decよりむしろ
ポストインクリメントとかプリデクリメントの
アドレッシングモードに対応させた方が分かりやすいような。

6809 

LDA ,X+   ; A = *(X++);
STD ,Y++  ; *(Y += 2) = D;
LDB ,-Y   ; B = *(--Y);
LDX ,--S  ; S-=2; *(S) = X;

みたいな
926仕様書無しさん:04/09/24 00:52:03
>>924
Cの場合パディングビットと符号ビット以外は0になることが保証されている
ので、パディングビットまたは符号ビットが0以外になる場合だね。
逆に全ビット0は整数0になることが保証できる(たしか)。

ありそうなのが負の数が1の補数表現だったり、符号ビット+絶対値表現の
場合のいわゆる-0だね。

intの内部表現にパディングビットのある環境ってあるのかなあ。

>>923
trueはint main() { return 0; }だと思うけど。
(argv[0]を見てなんかやってるかも)
927仕様書無しさん:04/09/25 09:54:19
928仕様書無しさん:04/09/26 11:27:27
このスレまだやってたんかい
929仕様書無しさん:04/09/27 07:58:01
>>918
普通にいっぱいある。インタプリタの最内側でもいいし
グラフィックとかエンコードとかの処理の最内側ループでもいいし。
930仕様書無しさん:04/11/02 20:20:45
931仕様書無しさん:04/11/02 20:51:09
もうすぐ次スレだな。
932仕様書無しさん:04/11/02 21:56:21
まとめ
TRUEは定義されるものであって
なにかから算出されるものではない。よって正しいも糞もない。

以上。終了。
933仕様書無しさん:04/11/03 06:13:13
余談だが、Delphiとかでファイルストリームにboolean値を書き込んで、
バイナリエディタで確かめてみると、
Trueは勿論0x00、Falseは0xFFが書き込まれているのは知っていて
損はないと思うよ。今更だけど。
934933:04/11/03 06:14:15
すまん、逆だ。
Falseは0x00、Trueが0xFFだ。
おっちょこちょいだったな。
935仕様書無しさん:04/11/03 20:44:24
>>934
でも弊社では 0xFF は必ず Invalid Value を表すことになってますよ?
2 バイトなら 0xFFFF, 4 バイトなら 0xFFFFFFFF ね。
936仕様書無しさん:04/11/03 21:02:16
弊社では・・・・・・とか言われてもねー
937仕様書無しさん:04/11/08 23:05:14
VARIANT_TRUE
938仕様書無しさん:04/11/09 16:19:26
スレも終了が近いが、結局誰の意見が正しいのだ?
939仕様書無しさん:04/11/09 16:43:49
>>935
>弊社では

>>933の会社では0xFFは必ずTrueですが何か?^^;
940仕様書無しさん:04/11/09 17:01:31
>>935
C の古典的な書き方で、int main() がエラーを起こして異常終了する時は -1 (要するに全ビット起立!)を返すってのがあるな。
で、ここは TRUE/FALSE について話すスレなんだが、その Invalid Value と何か関係があるのか?
941仕様書無しさん:04/11/09 17:39:32
>>938
オレオレ
942仕様書無しさん:04/11/09 19:05:48
つーかDelphiではByte(True)=1だ
943仕様書無しさん:04/11/09 19:19:58
電気的にはtrue==1だろ。
PGは言語仕様次第。

糸冬 了
944仕様書無しさん:04/11/09 20:08:35
>>943
>電気的にはtrue==1だろ。
いいえ違います。
945仕様書無しさん:04/11/09 20:16:42
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
948仕様書無しさん:04/11/13 09:29:38
>>946
いいえ違います。
949仕様書無しさん:04/11/13 10:33:46

1 = ティムポ

0 = マムコ
950sage:04/11/13 15:24:55
>>949
はいそうです。
951仕様書無しさん:04/11/13 15:42:44
1000までに結論だしとくれよ
952仕様書無しさん:04/11/13 15:50:09
> TRUEは定義されるものであって
> なにかから算出されるものではない。よって正しいも糞もない。

これでいいと思うが。
953仕様書無しさん:04/11/13 16:50:50
でも-1がコンピュータ的には一番自然な定義だね。
954仕様書無しさん:04/11/13 17:29:05
>>953
もうバカは黙っとけ。
955仕様書無しさん:04/11/14 04:50:05
まあ、二乗するとマイナスになる数みたいなもんだよ。!0 って奴は。
956仕様書無しさん:04/11/23 14:15:17
-1だと2つキー押さなきゃならないだろ。
だからわざわざPCが入力者に思いやって1と1つのキーだけにしてくれてるんだよ。
分からないのか?
957仕様書無しさん:04/11/24 22:46:00
んなこたぁない
958仕様書無しさん:04/11/24 23:07:41
ぬるぽの出番はまだですか?
959仕様書無しさん:04/11/24 23:12:34
ガッの出番!
960仕様書無しさん:04/12/02 10:55:53
>>1はCにコダワってないな。
961仕様書無しさん:04/12/09 16:43:57
ところでこんなのはどうよ。
#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なんてわざわざ使わないのが一番だろ。
962仕様書無しさん:04/12/10 14:57:28
>>961
そんな「真偽値が何か解っていない間抜けなコード」持ち出されても。
963仕様書無しさん:04/12/30 11:24:29
やっと答えが出ました

#define TRUE (ここに何か数値)

というコードの意味は

『TRUE の値は不定、柔軟に決める』

ということでし
964仕様書無しさん:04/12/31 01:11:26
963がバカっぷりをさらしただけで何の答えにもなってないな
965仕様書無しさん:05/01/06 09:53:52
const TRUE = !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0;
966仕様書無しさん:05/01/11 18:33:47
>>961
だからなんでCを基準に考えるんだよ。
967仕様書無しさん:05/01/11 22:16:08
/* FALSE が 0 なら TRUE は -1 が正しい */
if(FALSE == 0){
  TRUE = -1;
}
968仕様書無しさん:05/01/13 15:57:24
#define TRUE ((void *)0)
#define FALSE ((void *)1)
969仕様書無しさん:05/01/13 16:40:39
ファルス!
トルゥアッ!!
970仕様書無しさん:05/01/13 18:16:04
つーか、真偽値を整数値にキャストできるような低級言語が高級言語を名乗ってることが一番の問題なんでわ?
971仕様書無しさん:05/01/13 23:49:08
BOOLならTRUEが1以上、FALSEは0。
972仕様書無しさん:05/01/13 23:59:53
TRUEは255か65535か4294967295(か18446744073709551615)でいいんじゃない?
973仕様書無しさん:05/01/14 00:18:04
真実などこの世には存在しない
974仕様書無しさん:05/01/14 00:42:25
なんでもいいよ
975仕様書無しさん:05/01/20 16:15:51
#define TURE 975
976仕様書無しさん:05/01/22 14:00:02
#define FALSE 976
977仕様書無しさん:05/01/22 19:30:03
#pragma message("それで結論は?")
978仕様書無しさん:05/01/22 22:36:33
>>977
このスレは>>56でもう結論は出ているんだよ。

979仕様書無しさん:05/01/29 07:50:30
Const short vbTrue = -1
980仕様書無しさん:05/01/29 10:36:21
Const Short vbFalse = 0
981仕様書無しさん:05/02/04 13:49:33
981
982仕様書無しさん:05/02/05 07:26:28
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仕様書無しさん:05/02/05 07:30:31
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
991仕様書無しさん:05/02/05 07:45:50
aaaa
992仕様書無しさん:05/02/05 07:46:29
991
993仕様書無しさん:05/02/05 07:47:07
993
994sage:05/02/05 07:47:26
a
995仕様書無しさん:05/02/05 07:47:55
b
996仕様書無しさん:05/02/05 07:48:21
995
997仕様書無しさん:05/02/05 07:48:51
997
998仕様書無しさん:05/02/05 07:49:58
998
999仕様書無しさん:05/02/05 07:52:00
999
1000仕様書無しさん:05/02/05 07:52:11
 *     +    巛 ヽ
            〒 !   +    。     +    。     *     。
      +    。  |  |
   *     +   / /   イヤッッホォォォオオォオウ!
       ∧_∧ / /
      (´∀` / / +    。     +    。   *     。
      ,-     f
      / ュヘ    | *     +    。     +   。 +        このスレッドは1000を超えました。
     〈_} )   |                                次スレも…VIPクオリティ!!
        /    ! +    。     +    +     *         http://ex7.2ch.net/news4vip/ 
       ./  ,ヘ  |
 ガタン ||| j  / |  | |||
――――――――――――  
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。