問題タブ [integer-arithmetic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - インタープリター言語で非常に大きな整数を操作すると、予期しない結果が生じる
の合計を取得しようとしていますが1 + 2 + ... + 1000000000
、PHP とNode.jsで面白い結果が得られています。
PHP
Node.js
を使って正解を計算できます。
正解 = 500000000500000000 なので、別の言語を試すことにしました。
行く
しかし、それはうまくいきます!私の PHP と Node.js コードのどこが悪いのでしょうか?
おそらくこれはインタープリター言語の問題であり、それが Go のようなコンパイル済み言語で機能する理由でしょうか? もしそうなら、Python や Perl などの他のインタープリター言語にも同じ問題がありますか?
c - ULLONG_MAXより大きい数値
より大きい数値を格納して使用する必要がありますULLONG_MAX
。
これらの値で算術演算を行う必要があるため、store as はオプションではないと思いchar**
ます。
long
そのような場合に追加のプレフィックスを動的に作成する方法はありますか?
皆さん、ありがとうございました。回答に基づいて、非常に役に立ちますが、最高のパフォーマンスオプションについては疑問です. piokuc はパフォーマンス リンクを引用していますが、不明です。今回は GMP か MPIR のどちらかで迷っていますが、どちらか速い方はありますか?
64-bit - 16ビットマシンで64ビット乗算を行う方法は?
組み込みの 16 ビット CPU があります。このマシンでは、int は 16 ビット幅で、32 ビット幅の long をサポートしています。64 ビットで格納する必要があるいくつかの乗算を行う必要があります (たとえば、32 ビットの数値を 16 ビットの数値で乗算します)。与えられた制約でそれを行うにはどうすればよいですか? これを行うための数学ライブラリがありません。
cpu - 整数乗数は物理的に整数単位または特殊関数単位ですか?
CPUパワーを見積もるツールMcPATを使っているのですが、整数乗数は特殊な機能単位としてカウントされているようです。何故ですか?代わりに整数単位であるべきではありませんか?また、特殊関数ユニットは、sin、cos、rcp などの超越関数だけに関係するべきではありませんか?
c - C コードで係数オペランドが無視される
次のコードがあります。
これにより、次の逆アセンブリが生成されます。
unsigned short prev = ((wrLine - 1) % LINES_IN_FIFO);
wrLine = (wrLine + 1) % LINES_IN_FIFO;
興味深いことに、wrLine が 0 の場合、prev は 0xFFFF になり、wrLine が 15 の場合は 0x0000 になります。なぜこれらの1つだけが機能するのか考えていますか?
ありがとう、デヴァン
java - int が偶数かどうかを確認する方法
これは、単に私を避けている簡単な解決策である可能性があります。具体的には、sin() 関数を使用して円上の等距離点に動的に位置を作成しています。これらのポイントが作成されたら、ポイント間の勾配を計算し、各勾配ステップで形状を再描画することにより、あるポイントから次のポイントに移動する形状をアニメーション化します。
問題は、座標値によっては、勾配のステップが点 a から点 b までの 1 つのステップにすぎない場合があることです。ポイントからポイントへジャンプするだけでなく、パスに沿って移動するシェイプが必要です。
私がやりたいことは、位置座標 (x, y) を強制的に偶数にして、勾配値を常に還元できるようにすることです。だから、質問の簡単な部分は...
int 値が偶数かどうかを確認するにはどうすればよいですか? そうでない場合は、単に座標値に 1 を追加します。
floating-point - C/C++ プログラムで算術演算の数をプロファイリングする方法は?
特定の C/C++ プログラムで使用される算術演算の総数をプロファイルする方法はありますか? 算術演算とは、ハードウェアで整数/浮動小数点/特殊演算ユニットを使用する演算を意味します。
scala - ちょっとした数学的なこと : 二乗と丸め
scala では、整数d
&が与えられた場合、 が正方形でx
ある場合にのみ true になるブール式があります。y = (x^2 - 1) / d^2
私はこれを試しました:
しかし、3タプル(x = 2, d = <all values tested>, y = 0.0)
は常に私の問題の答えであるように見えますが、これは明らかに間違っています. 私のエラーは、行われた丸めから来ていると思います.x = 2、d = 4の場合(たとえば)x * x - 1 == 3
、d * d == 16
除算は0
.
いい表現って知ってる?