問題タブ [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.

0 投票する
3 に答える
3744 参照

c++ - 単一の連続したメモリブロックを使用して3次元配列にインデックスを付ける

working_lattice[1][5][3]上記の宣言のスタイルを使用してアクセスするにはどうすればよいですか?

0 投票する
2 に答える
142 参照

c - (a * X)/b式で2つのおそらく大きい数値を使用してintを再スケーリングする方法

私は次のようなcの式を持っています:

これは、で再スケーリングXするために使用されa/bます。ただしX、16ビットのunsigned intであり、withの乗算aは簡単にオーバーフローする可能性があります。正確な結果が得られる整数だけを使用してこの計算を行うにはどうすればよいですか。

もちろん浮動小数点演算を使用することもできますが、この操作が浮動小数点ハードウェアのないプロセッサで機能する可能性が高くなります。

編集:aとbは両方とも32ビットの符号なし整数であると言うのを忘れました。さて、私の答えは、右シフトabて、両方が16ビットに収まるまでです。その方法a * Xは最大32ビットであり、最終的な計算は正確です。

0 投票する
3 に答える
904 参照

python - Pythonで整数演算を使用して分数を浮動小数点数に変換するにはどうすればよいですか?

私がする必要があるのは、整数演算を使用して分数を浮動小数点数に変換することです。必要な小数点以下の桁数は変数として指定されますDECIMALS。各分数は、たとえば、整数のタプルに含まれています(1, 3)。最初の項目は分子で、2番目の項目は分母です。タプルは、と呼ばれるリストに含まれていますfractions

これはこれまでの私のコードです:

私がコードを実行すると、これは私が得るものです:

問題は、これを正しい10進形式にフォーマットする必要があることです。私が試したのは

しかしもちろん、これは最初の2つの小数でしか役に立ちません。残りは間違っているでしょう。分数を個別に計算してフォーマットしやすくするために分割することを考えましたが、その方法がわかりません。問題は、すべての分数を同じコードで処理する必要があるということです。また、適切に丸めたいのですが、今のところ大したことではありません。

0 投票する
1 に答える
230 参照

assembly - データの 10 進数から 2 進数へ

  1. X10 をバイナリ X2 に変換します。バイナリでの X10 の表現に必要なビット数を正確に決定し、記述しなければなりません。X2 を表すのに必要なビット数の値を最も近い 4 の倍数に切り上げ、各 4 ビット グループの間にスペースを入れて、このビット数で X2 を表します。

x10 58927634 x10 を x2 に変換しました

11100000110010101000010010

しかし、X2 を表すために必要なビット数の値を最も近い 4 の倍数に切り上げるという部分が理解できませんでした。本当に助けが必要です。これを解決するには説明だけが必要です。答えは必要ありません。説明。

0 投票する
1 に答える
65 参照

algorithm - タイムスタンプからFiscalWeekへ

"yyyy-mm-dd"この形式のタイムスタンプを整数の会計週に変換しようとしています。現在、私のアルゴリズムは4(k-1)+ floor(d / 7)+1です。ここで、kは整数の月、dは整数の月です。土曜日は新しい会計週を開始します。

これにはいくつかの欠陥があり、正しくありません。たとえば、2012年1月28日土曜日を考えてみましょう。

  • 私のアルゴリズムは5を計算します(これは正しいです)。

次に考えてみましょう。2月3日金曜日:

  • 私のアルゴリズムは5を計算します(これは正しいです)。

2月4日土曜日を考えてみましょう。

  • 私のアルゴリズムは5を計算します(これは正しくありません)。

私のアルゴリズムは常に数か月の間に失敗するため、エラーが増加するようです。

正しい会計週を計算するにはどうすればよいですか?

0 投票する
1 に答える
268 参照

c++ - 非標準ベースの算術

任意精度の整数クラスを変換して、1桁あたり8ビットだけではない桁を使用できるようにしようとしています。奇妙な問題に遭遇しました。uint16_t 基本桁タイプには使用できますが、使用できませんuint32_t。私のコードは悪い結果を返します。何がうまくいかなかったのかを見つけるために使用した例は0x1111111111111111 * 0x1111111111111111、であるはずです0x123456789abcdf00fedcba987654321。しかし、私は得て0x123456789abcdf0fedcba987654321います。

基本桁のタイプを変更しても問題がないように、ハードコードされたすべてのタイプを変更したと思いましたが、明らかにそうではありません。

関連するコードは次のとおりです。

間違った計算を引き起こす可能性のある、私が見逃した明らかな何かがありますか?私はこのコードを一気に少し長すぎて見つめてきました。

完全に変更されたコードはここにあります。

編集:私はideoneでコードをテストしました、そしてそれはこの計算のために正しい値を返しています、しかし私のコンピュータはまだそうしません。これについて何か良い説明はありますか?

0 投票する
3 に答える
343 参照

c - C 配列演算とポインター

重複の可能性:
C 配列では、なぜこれが正しいのですか? [5] == 5[a]

私はCのチュートリアルを読んでいて、この構文に出くわしました:

ここでのポイントは を取得することint 1000ですが、最後のものは意味がありません。遅くて私の脳が機能していないか、Cに特有のものか、タイプミスのいずれかです。ポインターに関しては、すべての基本をカバーしたいので、注意深く読んでください。それはすべてを理解することを意味します。どんな答えでも大歓迎です!

0 投票する
3 に答える
412 参照

c - 整数で printf() を理解する

printf()メソッドが符号付きまたは符号なしの整数をどのように出力するかについて質問があります。ある日、コンピューターには 10 進数の概念がないことを考えると、2 進数のシーケンスを人間が理解できる 10 進数のシーケンスに変換するのはどれほど難しいに違いないか考えていました。

以下に、関連付けられたメソッドを含むprintf()メソッド (ここから) があります。printi()コメントでわかるように、どのように機能するかについてできる限り理解しようとしました。

ライブラリのソース コードを読むときに私が嫌いなことが 1 つあるとすれば、それはほとんど読めないことです。変数名が 1 文字で、説明するコメントがないのは面倒です。

簡単な方法で、整数を 10 進数の文字列に変換するメソッドが正確に何をしているのか説明していただけますか?

0 投票する
3 に答える
222 参照

c - 複数の整数を1つの任意の長さの10進文字列として出力する

16個の64ビット符号なし整数があるとします。作業を行う際には、必要に応じてキャリーをフィードするように注意しています。それらを1つの1024ビット2進数であるかのように、すべてを10進数の1つの文字列に変換するメソッドにフィードできますか?言い換えれば、1つの大きな整数を表す任意の数の整数に対して機能するメソッドを作成することは可能ですか?

処理する最上位ビットがあるため、符号付き整数の方が難しいと思います。数値の残りの「部分」を表すために、最も重要な整数は符号付き整数であり、残りは符号なしであると思います。

(これは別の質問に半関連しています。)

0 投票する
3 に答える
3293 参照

javascript - 整数演算を使用するように JavaScript コードを最適化する

「非常によく」問題を解決するアルゴリズムがいくつかあります。「非常によく」とは、整数演算を優先して浮動小数点演算の量を最小限に抑えることを意味するという仮定の下にあります。たとえば、キャンバスに線を描くためにどのピクセルを塗りつぶすかを判断するための Bresenham の線アルゴリズムを考えてみましょう。この男は、単純な整数演算だけでプロセス全体を実質的に実行可能にしました。

この種のことは、多くの状況で明らかに優れています。しかし、JavaScript で多くの浮動小数点演算を必要とする操作について心配する価値はありますか? 言語仕様に関する限り、すべてがほとんど10進数であることを理解しています。物事を可能な限り整数のように保つことが実際に価値があるかどうか疑問に思っています.ブラウザは価値のある最適化を行いますか?