C言語のことは俺に聞け<45>

このエントリーをはてなブックマークに追加
知ってます。
そりゃまあ。
苦しゅうない、朕は不滅じゃ。
804201:02/12/07 10:49
int value = 任意;
if (0 <= value) {
 value = 0;
}
これ、ifを使わないで計算だけでかけますか?
>>804
value = (0 <= value)?value:0;

俺って天才!
>>805
逝ってよし
//面倒くさいからintは32bitと仮定
int val;
{
unsigned int i = val & 0x80000000;
i = i | (i >> 1) | (i >> 2 ) | (i >> 3 ) | ...略.. | (i>>31) ;
return val & i;
}
>807
じゅうぶん面倒だろそれ。
value * ((value >> 31) & 1);
>>805
逆じゃん

>>807
実装依存

0<=value && value=0 ;
>>804
value = value * (value < 0);

でも、素直に参考演算子か if 文使って書いた方がいいよ。
811804:02/12/07 11:38
説明不足でした。
可読性、速度、汎用性などを考慮したコードでは?

1000万回連続実行した場合の合計時間(debug build)。
>>804 31(ms)
>>805 94(ms)
>>807 313(ms)
812804:02/12/07 11:50
沢山の回答ありがちょう。
全てにおいて >>804 のコードが勝っていると認定されますた。
漏れって天才!
なるほど、こういう釣り方もあるのか。。_φ(..;)メモメモ
釣りとか嫌
>>813
(゚Д゚)ハァ?
構造体について疑問。

struct DATA {
 int a;
}

とした後、

struct DATA d1,d2,d3;

とした場合と、

DATA d1,d2,d3;

のようにstructを省略した場合とでは、どんな違いが出るんでしょうか?
>>812
よかったね。

もうくるなよ。
>>816
C++ スレに逝け。
>>812
君の言う天才は他人からみれば馬鹿以下なんだよ
>>816
前者は問題なくコンパイルできるが、後者はエラーになる。
>>820
VC++6.0だとエラーにはなりませんが…
>>821
ここはC言語スレですが何か。

$ cat a.c
struct DATA {
    int a;
};
DATA d1, d2, d3;
$ cl -c a.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

a.c
a.c(4) : error C2061: 構文エラー : 識別子 'd1' がシンタックスエラーを起こしました。
a.c(4) : error C2059: 構文エラー : ';'
a.c(4) : error C2059: 構文エラー : ','
$ mv a.c a.cpp
$ cl -c a.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

a.cpp
823812:02/12/07 13:01
>>817 >>819
誰もが書くであろう基本的なコードが1番早かった。ちゃんちゃん。
って落ちなんだよ。反抗期さんわかった?

>>816
CとC++の違いだな。
>>823
ほう、それはよかったな。

満足したら、もうくるなよ。
>>823
氏ねよ。マジで。
お前みたいな社会の屑は迷惑だ。
何が天才なんだか。
else 無しの if が一番速いのは実行しなくてもわかるだろうに。
827デフォルトの名無しさん:02/12/07 14:16
つーかこうせんかな。
if (value < 0) value = 0;
はっ!?
ひっ!?
(゚Д゚)ハァ?
( ´_ゝ`)プッ!
832デフォルトの名無しさん:02/12/07 14:36
( ゚Д゚)h?
ふーん( ´_ゝ`) <=> (´<_ ` )そっか
83445:02/12/07 14:40
(゚Д゚)ィェーッ
Σ(゚д゚lll)ガーン
('_`)ソウカ・・・
・・・
クソすれ
>>827
つっこんでいいもんやら...。
>>839
迷うくらいなら突っ込め。
てか >>828-838 は全て >>827 へのツッコミだと思ふ、
842デフォルトの名無しさん:02/12/07 16:51
>>823
なぁさ、最適化OFFにしたときはきっと結果は変わると思うんだがどうだろう?
そら、もっとも使用頻度の高いifがかりかりにチューンされているのは当たり前であって。

やっぱりお前は凡人だな。
つまらん。
> 使用頻度の高いifがかりかりにチューンされているの

(゚Д゚)ハァ?
そんな特別な事してねーよ。
単に if で書くと必要な演算量が減るだけだ。
つーか、827 は何がいけないんだ?
>>845=827ですか?( ´,_ゝ`)プッ
>>845
間を外したところ。
フルートが鳴りません。どうしたらいいですか?
>>845
ハァ ? >>805 を改良してどーする。
>>849
>>805じゃなくて>>804だろ。
いや、827 は value == 0 の時に代入が発生しないからより高速に動く事を
期待できるはずなんだが、みんな何をそんなに一生懸命叩いているんだ?

847 のような理由は置いといて。
間違ってるから。
ああ、比較の向きか。やっと気付いた。
>>850
なんか熱くなってない ?
冷静になって、>>804-805, >>827 のコード見た方がいいよ。
そうすれば、>>849 の言いたいことがわかるよ。
>>854
> なんか熱くなってない ?
いや全然。でも>853を見るまで気づかなかったよ。
848 に誰か答えてください
857 ◆F52DmOxJlc :02/12/07 19:22
>>848
ちゃんと充電したか?
電気を使わないタイプのフルートのようです。
>>848
実はフルーツ
つまんねーー!!!
>>848
実はフノレート。
>>858
だったら不良品だから、交換してもらってください。
フルートですが、マジでドとレとミの音が出ません。
クラリネットではありません。
実はプルート
実はプルーン
実はぷるるん 
実はぬるぽ
868 ◆F52DmOxJlc :02/12/07 19:54
>>863
思いっきりがんばればミは出るだろ。
869デフォルトの名無しさん:02/12/07 20:17
>>863
ド・レ・ミ抜きで演奏!
>>863
マジレスするが、ド とか言うなよ。恥ずかしいぞ。
十二音全て、ド になることができるんだからさ。
871デフォルトの名無しさん:02/12/07 20:32
じゃあ何て言うの?
873デフォルトの名無しさん:02/12/07 20:35
ラだよ馬鹿
わかった!!
C だ!!
>>874
じゃあシはなんて言うのさ?
>>874
ピン・ポ〜〜〜ン。
もちろん「シー」なんて言っちゃ駄目だよ。
>>876
>>872 も正解にしてあげて下さい。
西洋では CDEFGAB ...
日本では ハニホヘトイロ ...
879 ◆F52DmOxJlc :02/12/07 21:34
>>878
CDEFGAH の方が好き。
ドボルザークが
>>870
マジレスするが、そんなことは初めて聞いた。
>>881
相対的な話だろ。それが調にもつながるという。
だとするとAの周波数が厳密に決められてるのはおかしいわけだがw
883 ◆F52DmOxJlc :02/12/07 23:40
>>881
それぞれの調の主音をドと読むんだよ。
ニ長調ならレをドと読み替える。
楽典読んでごらん。
>>881
音楽のことを知らないくせに偉そうなこというな。
黙ってろヴォケが。
同志である>>883>>884のレベルの差がおもしろい。

>>882
A の周波数ってどっかで決まってんの ?
普通は、440Hz〜445Hz ぐらいの幅持ってたと思うが。
887デフォルトの名無しさん:02/12/07 23:57
つーか、これ何のスレだ?
ツェー
>>886
ここで調律論をやる気か?
440Hzと覚えておけば充分。

<             >858-889ハァァァ???

  ∨∨∨∨∨∨∨∨∨∨∨\  /∨∨∨∨∨∨∨∨∨∨
          /:|.       | |     /:|
        /  .:::|       ∨    /  :::|
        |  ...:::::|           /   ::::|
       i       ̄ ̄⌒゙゙^――/    ::::::::|
      /_,,___       . _,,,,__,_     :::::::::::\
      /   ゙^\ヽ..  , /゙   ¨\,.-z   ::::::::::\
      「 ●    | 》  l|  ●    ゙》 ミ..   .::::::\
     /i,.      .,ノ .l|  《       ..|´_ilト    ::::::::::\
    / \___,,,,,_/ .'″  ^=u,,,,_ v/..       :::::::::::::l!
    |            ̄ ,,、         i し./::::::::.}
   |  /  ,,____ _,/ ̄ \ \      ノ (  ::::::::::|
    |  |.. | /└└└└\../\  \    '~ヽ ::::::::::::::}
    |   .∨.|llllllllllllllllllllllllllllll|          ::::::::::{
    |    |.|llllllllllll;/⌒/⌒  〕         :::::::::::}
     |   |.|lllllllll;   ./ .   . |          ::::::::::[
     .|   |.|llllll|′  /    . |    .|      :::::::::::|
     .|   |.|llll|    |     .∧〔   /    :::::::::::::/
    / }.∧lll    |    ../ /  /   :::::::::::::::::\
   /   /| \┌┌┌┌┌/./ /:::      :::::::::::::::::\
      ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /:::::::::::         ::::::::::\

>>889
何言ってんのこの人 ?
俺は、A の周波数が (* 厳密に *) 決められているかどうかか知りたいだけだよ。
>>891
それをしってどうなる?
人間の耳は5Hzの違いなんて聞き分けられないぞ。
プログラム的には450でじゅうぶんじゃねーの。
それ以上のことを言うヤシは町立論(略
>>892
2行目に単位書いて3行目にそれがないのって不思議。
>>893
int に単位は不要だから。
ラの音は周波数が上がってきているんだよ。
昔は400Hzくらいだった。
でも地球の自転速度は徐々に遅くなってきてるぜ。
>>896
だからどうしたよ。ワラタけど。
>>892
> それをしってどうなる?

単なる興味だよ。ウィーン音楽協会みたいなとこが決めてんのかなぁって思っただけ。

> 人間の耳は5Hzの違いなんて聞き分けられないぞ。

フシ耳ですか ? 440Hz に対して、5Hz と言うと半音の約 1/5 だよ。
素人でも、なんとなく分かるぐらいのところだよ。
絶対音感持ってる奴なら、確実にわかるぞ。
ちょ球の自転速度が遅くなるはずはありません。
なぜなら地球は宇宙エネルギーをもらって動いているので
永久不変なのです。
もし自転速度が遅くなる時は宇宙がビッグバンになる時くらいです。
>>899
>>896のが正しい。