1 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 13:10:57 ] このスレは標準Cのみの限定スレです。 まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。 質問する前には最低限検索を。 エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。 C FAQ 日本語訳 www.kouno.jp/home/c_faq/ Cプログラマ必読 ・プログラミング言語C(通称 K&R) www.amazon.co.jp/exec/obidos/ASIN/4320026926/250-7563469-9920244 他の過去ログはここに nssearch.hp.infoseek.co.jp/clang/ 前スレ 【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131 pc11.2ch.net/test/read.cgi/tech/1170338926/ GUIなどの標準Cではできない事の質問、ソース丸投げ、宿題、書籍 は 専門の別スレッド↓があるのでそこへさようなら。 【初心者歓迎】C/C++室 Ver.42【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1188748806/ C/C++の宿題を片付けます 95代目 pc11.2ch.net/test/read.cgi/tech/1187944110/ 【このスレ住人としての心得】 ビットシフトはなんの役に立つのでしょうか でググれ
93 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 13:46:57 ] 3つの数字が同じかどうかを A==B==C で比較できますか?
94 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 13:50:05 ] できませんよ
95 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 13:50:52 ] できますよ
96 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 13:52:20 ] AもBもCも1である、という限られた条件なら可能w。
97 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 13:52:43 ] そう思うならやってごらんよ
98 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 13:59:01 ] >>95 お前バカだなぁ わかってないんだから出てくるなよ
99 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 16:13:40 ] できますよ
100 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 16:15:38 ] できますん
101 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 16:23:29 ] 自演乙
102 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 16:54:14 ] どうでもいいが、馬鹿は初心者スレで言ってくれ。
103 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 17:21:48 ] >>87 >複数の関数が入っているlibファイルを作って、<***.h>と書いたとき自動的に必要なlibファイルを読み込むように出来ますか? Visual C++ なら、ヘッダファイルに次のように書いておけば、mylib.libがリンクされる。 #pragma comment(lib, "mylib.lib")
104 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 17:35:38 ] >>103 スレ違いは誘導しましょう。
105 名前:デフォルトの名無しさん [2007/09/22(土) 18:28:21 ] JIS X 3010-1993 6.2.1.2 から 負の整数 A を A の型と同じサイズか大きいサイズの符号無し整数 B に変換するとき 処理系の負の整数の表現がどうであれ B は A の 2 の補数表現と同じビットパターン になると考えてもいいですか?
106 名前:デフォルトの名無しさん [2007/09/22(土) 18:36:22 ] 規格は、処理系が採用している数値の内部表現(2's complementとか)には言及してないだろ。 だから、符号拡張が起きるかどうか(が聞きたいのだろうがそれ)も処理系による。
107 名前:デフォルトの名無しさん [2007/09/22(土) 18:38:41 ] とはいえ、まーそのへんの2's complementな処理系だと、 32bit signed int が INT_MIN 10000000000000000000000000000000 だったとして、それを64bit unsigned long longに代入したら 1111111111111111111111111111111110000000000000000000000000000000 だわな。 | B は A の 2 の補数表現と同じビットパターン | になると考えてもいいですか? だから、この答えはNoかな。
108 名前:デフォルトの名無しさん [2007/09/22(土) 18:58:19 ] 規格では B の型の最大値 + 1 + A だから型のサイズが同じ処理系なら 負数の表現方法にかかわらず同じ結果になるんじゃないですか?
109 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 19:00:18 ] >>108 規格の文言を一字一句たがわず書いてみて
110 名前:デフォルトの名無しさん [2007/09/22(土) 19:06:05 ] > 型のサイズが同じ処理系なら > 型のサイズが同じ処理系なら > 型のサイズが同じ処理系なら > 型のサイズが同じ処理系なら > 型のサイズが同じ処理系なら > 型のサイズが同じ処理系なら >>105 と前提が変化した件について。相手にするの止めようかな。
111 名前:デフォルトの名無しさん [2007/09/22(土) 19:18:17 ] ビットの話がしたいなら、規格持ち出すの止めて処理系書けよ。
112 名前:デフォルトの名無しさん mailto:age [2007/09/22(土) 19:22:00 ] NicoVideo動画リンクが付いて超便利になった www.freewebs.com/photoradio/?0/1103271
113 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 19:27:03 ] if (sa > 10 || sa < -10) と if (sa>=11 || sa<=-11) は同じですか?
114 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 19:29:12 ] >>113 sa が整数型なら
115 名前:デフォルトの名無しさん [2007/09/22(土) 19:33:15 ] >> 109 JIS X 3010-1993 は会社にしかないし紙しかなく文が長いので ここに書くには手間がかかりすぎます。
116 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 19:42:48 ] >>113 お前宿題スレでしつこく書いてるバカだろ お前だけだぞ、わかってないの
117 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 19:45:33 ] >>115 身勝手な奴だな
118 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 20:08:10 ] printfなどの関数でefgなど浮動小数点数の変換を行うとき、 私は四捨五入が行われるものと思っていましたが、 X3014 : 2003 7.19.6.1には「この変換は適切な桁数への値の丸めも行う」と書かれているのみです。 この丸めもFLT_ROUNDSに従うものなのでしょうか。 あるいは、私が見落としただけで、ほかの箇所で規定されているのでしょうか。
119 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 20:13:55 ] >>113 こんなとこまで来ててフイタ
120 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 20:24:25 ] 模倣犯では。 ネット社会が生み出した これも一つの Stand Alone Comlex か(笑)
121 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 20:25:21 ] 模倣犯では。 ネット社会が生み出した これも一つの Stand Alone Comlex か(笑)
122 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 20:25:47 ] 模倣犯では。 ネット社会が生み出した これも一つの Stand Alone Comlex か(笑)
123 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 20:35:32 ] 模倣犯では。 ネット社会が生み出した これも一つの Stand Alone Comlex か(笑
124 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 20:38:03 ] 模倣犯では。 ネット社会が生み出した これも一つの Stand Alone Comlex か(笑)
125 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 20:44:23 ] >>120-124 間違い探しか?
126 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 21:01:22 ] Stand Alone Comlex(笑)
127 名前:デフォルトの名無しさん [2007/09/22(土) 21:02:33 ] >>109 C90 ではなく C99 であるが ttp://www.jisc.go.jp/app/pager?id=26811 の 6.3.1.3 に同じような内容がある。 UINT_MAX が 65535 のとき (unsigned int)(-1) は 65535 ということに ならないでしょうか?
128 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 22:13:22 ] intで2バイトってまだあるの?
129 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 22:13:34 ] うん
130 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 22:36:41 ] ifとswitchはどのように使い分ければいいですか?
131 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 22:52:49 ] switchは複数個の定数値を取るかもしれない1個の変数を判断するとき それ以外はif というか全部if、else ifでも別に
132 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 22:58:04 ] >>131 具体的に教えてください。
133 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 22:59:41 ] >>132 具体的に聞いてください。
134 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 23:00:20 ] >複数個の定数値を取るかもしれない1個の変数を判断するとき というのが良く分かりません。
135 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 23:05:31 ] 知らなくておk
136 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 23:07:42 ] 分かったときに分かればいいだけの話
137 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 23:09:55 ] >>134 if(xxx==0){ ..... }else if(xxx==1){ ..... }else{ ..... } ↑こういうのならswitchで↓この様に書けるけど switch(xxx){ case 0:.....break; case 1:.....break; default:..... } ↓こういうのはswitchを使って書けない if(xxx==0){ ..... }else if(yyy==1){ ..... }else if(yyy==zzz){ ..... }else{ ..... }
138 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 23:16:34 ] 馬鹿な質問に対して列挙型を〜って素直に教えないところがこのスレの優しさだな。
139 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 23:17:04 ] と言ってしまったけどswitchを複数使えば書けないことも無いか でもやっぱりそこまでして使うくらいならifを使ったほうがいい
140 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 23:19:48 ] >>138 皮肉なんか言ってないで教えたらどうなの。
141 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 23:43:39 ] 初心者スレじゃないんだから、わざわざ教えることもない。
142 名前:デフォルトの名無しさん [2007/09/23(日) 00:01:27 ] 符号付き整数 x を2のn乗 (n は 0 から 8 の整数) で割って-∞方向の 整数に丸める整数演算はどのようにすればいいでしょうか? Windows なら右シフトで x >> n のようにできますが処理系定義なので 一般的には右シフトではできないようですが。
143 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 01:23:10 ] >>142 x / (1 << n)
144 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 01:28:14 ] >>143 それだと負の数が0方向に丸められないか?
145 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 01:43:54 ] >>144 んじゃ、負の数ん時は条件分岐して適当にやっておいて。
146 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 02:38:31 ] >>127 ファイルが見つかりません。 ならない。
147 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 02:39:26 ] ちなみに-(unsigned int)1なら65535になる。
148 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 02:43:26 ] へ? (unsigned int)(-1) は UINT_MAX と同じだろ。
149 名前:デフォルトの名無しさん [2007/09/23(日) 02:46:46 ] >>146-147 何でそう思うか、きみが前提としている諸条件と共に述べよ。
150 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 03:22:22 ] どーでもいい話してんなお前ら
151 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 04:45:40 ] >>149 それはむしろ俺が>>127 に言いたいんだが
152 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 09:48:24 ] /*奇数か偶数か*/ #include <stdio.h> int main(void) { int no; printf("整数:"); scanf("%d",&no); switch (no%2) { case 0:puts("偶数");break; case 1:puts("奇数");break; } return (0); }
153 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:14:31 ] switch (no%2) { case 0:puts("偶数");break; case 1:puts("奇数");break; } ↓ puts((no%2)?"奇数":"偶数");
154 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:15:26 ] /*月の季節を表示 switchで*/ #include <stdio.h> int main(void) { int no; printf("月:"); scanf("%d",&no); switch(no) { case 3: case 4: case 5:puts("春です。");break; case 6: case 7: case 8:puts("夏です。");break; case 9: case 10: case 11:puts("秋です。");break; default:puts("冬です。");break; } return (0); }
155 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:16:26 ] >>153 条件演算子は、見にくくなるから使わないほうがいいって言われたんですが、どうなんでしょうか?
156 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:21:29 ] >>154 そらぁさすがに、defaultはエラー処理に使うべきじゃね?
157 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:22:56 ] >>155 >>153 が見にくい?
158 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:27:14 ] >>153 は十分に可読性を残してるだろ
159 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:39:46 ] >>50 参照。
160 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:40:00 ] >>41 参照。
161 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:41:06 ] >>154 /*月の季節を表示 switchで*/ #include <stdio.h> int main(void) { int no; printf("月:"); scanf("%d",&no); switch(no) { case 3: case 4: case 5:puts("春です。");break; case 6: case 7: case 8:puts("夏です。");break; case 9: case 10: case 11:puts("秋です。");break; case 12: case 1: case 1:puts("冬です。");break; default:puts("そんな月ありません。"); } return (0); }
162 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 10:56:22 ] >>161 バグがある
163 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 11:08:22 ] >>154 ,>>161 何故これを書いたの?この後に質問が続くのか? 先に意図を書いて欲しい...
164 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 11:15:23 ] return (0); //(笑) case 1: case 2:puts("冬です。");break; の間違い?
165 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 11:31:54 ] >>163 多分>>134 の例だろ
166 名前:デフォルトの名無しさん [2007/09/23(日) 12:42:42 ] >>147 6.5.3.3 単項演算子-の結果は,その(拡張された)オペランドの符合を反転した値とする。 オペランドに対して整数拡張を行い,その結果は,拡張された型を持つ。 拡張された型で負数を表現できない場合にどうなるかの記述を見つけることができ なかったが,拡張された型に変換されると考えれば (unsigned int)(-1) と -(unsigned int)1 は同じ結果になるんじゃないか?
167 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 13:36:46 ] puts("\a負の数を入力しないでください。"); の\aはどんな意味がありますか?
168 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 13:41:27 ] >>167 ビープ音を1回鳴らす。
169 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 13:53:52 ] \a = alert 実際の動作は処理系依存。 ビープ音もあれば画面をフラッシュさせることもあるらしい。
170 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 14:11:57 ] 前者はaudible alarm、後者はvisible alarmと言うこともあるね。
171 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:08:05 ] int no; int sum; no=1; sum=2; と int no=1; int sum=2; は同じですか? どちらを使うべきですか?
172 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:09:39 ] 後者は古い規格だと使えない事がある
173 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:23:02 ] >>172 それはないやろ。
174 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:23:55 ] いいえ。このスレ的には全く問題ありません。
175 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:25:57 ] >>172 そうなんですか。前者を使うほうがいいんですね。
176 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:33:04 ] >>175 いいえ。後者を使うべきです。
177 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:33:33 ] なんで?
178 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:38:37 ] 前者を使うべき理由がないからです。
179 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:38:43 ] どっちでもいいだろ
180 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 16:39:56 ] それだと 後者を使うべき理由が無いから前者を使うべきです とも言える
181 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:05:35 ] >>172 さんへ 質問者です。それは本当ですか? ということは、前者を使ったほうがいいってことですか? どうなんでしょうか?
182 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:09:43 ] >>181 C89とC99あたりの違いで言ってるんだろうけど本当だよ
183 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:11:06 ] ボーランドのbccを使っているんですが、 その場合も前者を使ったほうがいいですか?
184 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:12:06 ] バージョンくらい書けよ
185 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:13:22 ] MAKE Version 5.2 Copyright (c) 1987, 2000 Borland ってなってます
186 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:14:37 ] Borland C++Compiler 5.5.1 です。
187 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:43:05 ] C++だと、初期化と代入が区別されるから、Cでも意識して使いわけてもいいんじゃないか?
188 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:45:33 ] どういうこと?
189 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:55:52 ] >>127 ,146-147,166 (unsigned int)(-1) は 6.3.1.3 p2 により UINT_MAX と同じになる。 "if the new type is unsigned, the value is converted by repeatedly adding or subtracting one more than the maximum value that can be represented in the new type until the value is in the range of the new type." -(unsigned int)1 は 6.2.5 p9 により UINT_MAX と同じになる。 "A computation involving unsigned operands can never overflow, because a result that cannot be represented by the resulting unsigned integer type is reduced modulo the number that is one greater than the largest value that can be represented by the resulting type." 引用は ISO のドラフト (n1124) からね。
190 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 18:11:50 ] >>180 いいえ、後者を使うべき理由ならあります。 宣言以降代入までの不定値が存在する期間を排除することができるというのがそれです。
191 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 18:21:32 ] 互換性のために前者で書いたほうがいい
192 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 18:26:22 ] Cで前者にしか対応してないコンパイラがまだまだ普及してる 互換性を切り捨てるには時期尚早
193 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 18:29:23 ] っていうか、俺涙目みたいな・・・