2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :仕様書無しさん:04/04/17 07:29
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
test
>>01
>>5-2
>>005
>>10000000000000000000000000000000000
>>00000000000000000000000000000000000

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
>>106=>>111

113 :仕様書無しさん:04/04/18 12:59
http://ja.wikipedia.org/wiki/%E8%A3%9C%E6%95%B0

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
うちの漫研にあります。両方とも。


224 :1: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

229 :1: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
符号つきのポインタって・・

244 :235: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が含まれてないのは仕様ですか?

260 :235: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 の話をしているとは到底思えない。

305 :2:04/04/19 11:14
なんでこんなに伸びてるんだ(w
予想外の展開に杵ンカキコ


306 :仕様書無しさん:04/04/19 11:47
本当に暇なやつらだなあ。

307 :BASIC使い:04/04/19 12:27
えっ? trueは元から-1じゃん。それが正しいのは言わずもがな。

308 :仕様書無しさん:04/04/19 13:15
回転ドアといい此処と言い、プログラマは異常に凝り性だと言う事が証明された!

309 :FORTRAN 使い: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
正孔がプラスからマイナスに流れている、と
見ることもできます。

417 :1: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)の内点ではなく、境界上に位置している。
終端符号としてはふさわしい。

500 :500: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

で、見事に釣られてしまった訳だ。


522 :520: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を見たと書いているんだよ。
藻毎の妄想で複雑にされても困る罠。

605 :602: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コピペくせぇな。

648 :645:04/05/06 12:22
>>646 納得&同感
でも糞スレではなかったとおもうけどな、このスレは。
ただそろそろ結論出尽くして同じこと繰り返してるだけの状態にはなった
気はするが・・・

649 :仕様書無しさん:04/05/06 12:28
>>648
CとVBを理解できてるPGならば、答えは出ている問題だけどな。
漏れは、-1が1111(2)なのはわかるが、-1っていうと否定的なイメージがあるから1にする。

650 :645: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
何か、反論はありますか?

656 :645: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 の代わりになっているだけだけど

127 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)