アカウント名:
パスワード:
汎用のデジカメRaw現像ソフト。デコード部分のコードにコンパクトでパズルチックなものが多い。
富豪的プログラミングの名のもとに直接的なコードしか書けない自分には,なかなか参考には出来ないもののこういう世界もあるんだなと考えさせられる。
ちなみに,外部ライブラリを除けば単一ファイルで完結するソフトで,最新版の行数は9,519行と異常に長いのも特徴的。
レジスタに0代入より、自レジスタとXORの方が1クロック速い
クロックは同じで、命令が短いっていう印象。
xorというとビット反転に使うけど、プログラミングを始めた頃、BASICでA=1-Aとして0と1を切り替えていたのを見たときちょっと感動した記憶があります
>A=1-Aとして0と1を切り替えていたのを見たとき
す、すごい!!!早速「if flg=1 flg=0 else flg=1」な感じのとこを置き換えました!天才っているもんなんだな・・
この手のコード自体は悪くないけどさ、こういうのを多用すると見通しが良くなくなるからなあ。バカがコードに目を通すこともあるわけでさ。
それを言いだすと、何のコード書けなくなるよ。
1~10まで説明しても、駄目って言うから、詳細を聞いてみたら、始めに説明した事まったく聞いてなくて出来ていなかった事が多々あると、残念な人を考慮してたら何のできないと思えるよ。
あなたの日本語が残念な気がする。
元コメはBASICの話だから仕方ないけど、Cなら三項演算子使う方が見通し良くないですか?
C で 0 か 1 が入っている int 型の変数の 0 と 1 を入れ替えたいときに、スピード優先 (?) で A = 1 - A とか A ^= 1 とかなら意図は理解できる (本当に速いかどうかは知らない) けど、見通しを良くするのが目的なら A = !A 一択じゃないの? 三項演算子を使うべき場面じゃないと思う。
VzでTABサイズの4と8の切り替えをht=12-htってコードでやってたのを思い出した
折角ですので、整数を4や8の倍数に切り上げる方法も考えてみてください。
普通にx = (x + 3) & ~3;とか。
2のべき乗限定の手法だと理解出来ないバカ^H^H初心者に考慮しないと駄目?
> 早速「if flg=1 flg=0 else flg=1」な感じのとこを置き換えました!
flg=0 or 1ならば、「flg ~= 1」の方がいいんじゃない?
a=3-aもある
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds
dcraw.c (スコア:2)
汎用のデジカメRaw現像ソフト。
デコード部分のコードにコンパクトでパズルチックなものが多い。
富豪的プログラミングの名のもとに直接的なコードしか書けない自分には,
なかなか参考には出来ないもののこういう世界もあるんだなと考えさせられる。
ちなみに,外部ライブラリを除けば単一ファイルで完結するソフトで,最新版の行数は9,519行と異常に長いのも特徴的。
Re: (スコア:3, 興味深い)
今を去ること数十年前、アセンブラ(というよりマシン語)で
事故^h^h自己書き換えをする処理を見たときとか
レジスタに0代入より、自レジスタとXORの方が1クロック速いとか見たとき
ちょっと感動した記憶があります
Re: (スコア:3)
クロックは同じで、命令が短いっていう印象。
xorというとビット反転に使うけど、プログラミングを始めた頃、BASICでA=1-Aとして0と1を切り替えていたのを見たとき
ちょっと感動した記憶があります
Re:dcraw.c (スコア:0)
>A=1-Aとして0と1を切り替えていたのを見たとき
す、すごい!!!
早速「if flg=1 flg=0 else flg=1」な感じのとこを置き換えました!
天才っているもんなんだな・・
Re:dcraw.c (スコア:1)
この手のコード自体は悪くないけどさ、こういうのを多用すると見通しが良くなくなるからなあ。
バカがコードに目を通すこともあるわけでさ。
Re: (スコア:0)
それを言いだすと、何のコード書けなくなるよ。
1~10まで説明しても、駄目って言うから、詳細を聞いてみたら、始めに説明した事まったく聞いてなくて出来ていなかった事が多々あると、残念な人を考慮してたら何のできないと思えるよ。
Re: (スコア:0)
あなたの日本語が残念な気がする。
Re:dcraw.c (スコア:1)
Re: (スコア:0)
元コメはBASICの話だから仕方ないけど、Cなら三項演算子使う方が見通し良くないですか?
Re:dcraw.c (スコア:2)
C で 0 か 1 が入っている int 型の変数の 0 と 1 を入れ替えたいときに、スピード優先 (?) で A = 1 - A とか A ^= 1 とかなら意図は理解できる (本当に速いかどうかは知らない) けど、見通しを良くするのが目的なら A = !A 一択じゃないの? 三項演算子を使うべき場面じゃないと思う。
Re: (スコア:0)
VzでTABサイズの4と8の切り替えをht=12-htってコードでやってたのを思い出した
Re: (スコア:0)
折角ですので、整数を4や8の倍数に切り上げる方法も考えてみてください。
Re: (スコア:0)
普通に
x = (x + 3) & ~3;
とか。
2のべき乗限定の手法だと理解出来ないバカ^H^H初心者に考慮しないと駄目?
Re: (スコア:0)
> 早速「if flg=1 flg=0 else flg=1」な感じのとこを置き換えました!
flg=0 or 1ならば、「flg ~= 1」の方がいいんじゃない?
Re: (スコア:0)
a=3-aもある