2016-04-08 16 views
0
私はほとんどのプログラミング言語で x = x * 2 + 1;

x * 2 + 1を計算する簡単な方法はありますか? <br> <code>x = x*2;</code>が<code>x *= 2;</code></p> <p>のように書くことができます

を計算したい

は、もう少しスペースを節約する方法はありますか?

+6

可能な方法で、シンプルさ、それが複雑化してはならない、達成するのは困難と一度達成しています。単純なコードと悪いコードには違いがあります。マルチスレッドシステムでは、i ++、j--はアトミックではなく、問題を引き起こす可能性があります。小さなスペースはスマートではなく、より良い意味ではありません。 i ++やi + = 2のような式は、forループのような場所では理解しやすく、書くのが簡単です。しかし、理解できないコードを書くために珍しい方法を試みようとしないでください。コードは常に:T.U.B.E:テスト可能、理解可能、ブラウズ可能および説明可能でなければなりません。 * KISSの原則も参照してください。 –

+0

OPはプロダクションシステムでこれを使用したかったとは言いませんでした。好奇心はソフトウェアエンジニアにとって良い品質です。それは楽しい質問です。彼らが十分に楽しむかどうか疑問視しなければならない。 –

答えて

3

x += x + 1

数字はx = x * 2 + 1と同じですが、文字数は少なくなります。

また、x += -~xを使用することもできますが、最初は少しわかりにくいです。

EDIT:

私もx += ++xを試してみましたが、それはあまりにも、x = x * 2 + 1と同じです。しかし、私は1つのステートメントで変数を2回割り当てているので、このステートメントで悪を感じるのをやめることはできません。

2

x *= 2; x++;?それはx = x * 2 + 1;よりも短く、結果は同じです。あなたがそれをやりたいのはなぜ

+0

実際には9文字で、OPの文は8文字です。 – Nier

1

これはあまりにも

x*=(2+1/x) 
+0

興味深い選択肢ですが、浮動価値の問題ではかなり危険です。 Ex。 _59.00000000000001_ –

+0

私は、上の方程式で浮動小数点値を使うことで世話ができると思います。 – denis

関連する問題

 関連する問題