問題タブ [integer-division]

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 投票する
5 に答える
6437 参照

visual-c++ - Visual C++ に組み込まれている 128 ビット除算

Visual C++ には本当に 128 ビット除算の組み込み関数がないのでしょうか?

と呼ばれる 64x64=128 ビットの乗算組み込み関数があり、これはx64 アセンブラー命令_umul128()とうまく一致します。MUL

当然のことながら、128/64=64 ビットの除算組み込み (DIV命令のモデル化) もあると思いましたが、驚いたことに、Visual C++ も Intel C++ もそれを持っていないようで、少なくとも intrin.h にはリストされていません。

誰かがそれを確認できますか?コンパイラの実行ファイルの関数名をgrepしてみましたが、そもそも見つからなかっ_umul128たので、探し方を間違えたのでしょう。

更新: 少なくともumul128、Visual C++ 2010 の c1.dll でパターン (先頭のアンダースコアなし) を見つけました。他のすべての組み込み関数はその周りにリストされていますが、残念ながら「udiv128」などはありません:(それを実装することを「忘れて」います。

明確にするために:私は128ビットのデータ型を探しているだけでなく、C++で128ビットのスカラーintを64ビットのintで割る方法も探しています。組み込み関数またはネイティブの128 ビット整数サポートのいずれかが問題を解決します。

編集:答えはノーです_udiv128。Visual Studio 2010 から 2017 までの組み込み関数はありませんが、Visual Studio 2019 RTM で利用できます。

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

ruby - ループが閉じられるまでループ内の変数の値が更新されない理由を誰かが明確にできますか?

これが私の機能です

それぞれカウントが1の配列内の2つのオブジェクトの場合、ロガーは次のように表示します。

cum_distnの値は、1つのループが完了したときにのみ更新されているようですが、if関数が開く直前に更新する予定です。2つの質問があります:

(a)なぜこれが起こっているのですか(論理的な説明が見当たらないため)?

(b)これを修正して自分のやりたいことを行うにはどうすればよいですか?

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

vhdl - 除算やモジュラスを使用せずに数値の桁を取得する

VHDLを使用して7セグメントカウンタを実装しようとしています。

カウンターは0から始まり、整数値を最大9999までインクリメントします。

値は、数値を数字に「分割」することになっているブロックに渡され、多重化された7セグメントに表示できるようになります。

割り込みなどの多くの方法を使用してPICでこれをすでに実行しましたが、FPGA(正確にはザイリンクスSpartan 3Eスターターボード)でこれを実行しようとしているので、自分が書いたコードを実装しているときに気づきました。分割もモジュラスも実装できないため使用できません...

編集:私は値0..9999をそれぞれ単独でマップできることを知っていますが、それははるかにフェッチされています。

確かに別の方法がありますが、私はそれを考えることができません。

回避策に関するヒントをいただければ幸いです。

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

performance - パーセンテージを計算するための浮動小数点乗算の簡単な代替手段

私はArduinoで高速に実行し、整数のパーセンテージを大まかに概算する必要があるコードを書いています。

たとえば、ある数値の 90%、70%、30% などを見つけたいとします。x * 0.9; または x * 0.3; しかし、速度が必要なので、浮動小数点計算は避けたいです。単純に 2 のべき乗で除算する場合は、ビット単位のシフトを行いますが、整数を使用して 90%、80% などを概算するための同様の手法はありますか?

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

powershell - PowerShell整数除算の2つの方法のパフォーマンステスト

Microsoft technetは、整数除算を提案[Math]::Floor([int]$a / [int]$b)しています。[int][Math]::Floor($a / $b)キャスト操作が1つ少ないため、読みやすく、パフォーマンスも向上すると思います。私は両方の方法が同等であることを証明しました。しかし、一貫した結果を得ることができません。私の方法論では、両方の方法論を10,000回繰り返し、Measure-Commandコマンドレットを使用して結果を測定します。ただし、あるテストが別のテストよりも繰り返しパフォーマンスが優れているテストを構成することはできません。私のコードは以下の通りです:

ある方法が別の方法よりも優れていることを証明する一貫した結果が得られるように、コードを変更するにはどうすればよいですか。

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

javascript - (高速) bigint除算を実装する方法は?

私は現在、数字を7桁で分割して、独自のBigIntクラスを作成しています。(つまり、ベース 10,000,000)

足し算、引き算、掛け算を実装し、現在は割り算と mod を実装しています。長い除算による除算 (最上位桁を除算して数値を推定する) を実行するコードを書きましたが、それは機能します。

ただし、遅すぎます。108 桁の数値と 67 桁の数値で演算をテストすると、除算の計算に 1.9 ミリ秒かかり、他の演算 (加減算の計算に 0.007 ~ 0.008 ミリ秒、乗算の計算に 0.1 ミリ秒) よりもはるかに遅くなります。

カラツバや高速乗算のための FFT アルゴリズムのように、除算を計算するためにどのようなアルゴリズムが存在しますか? ウィキペディアはいくつかの除算アルゴリズム (除数の乗法逆数を計算し、それを被除数で乗算する) を示していますが、除算の実装にはあまり役立たないと思います。「大規模整数メソッド」セクションも読みましたが、それも役に立ちません... :(

0 投票する
4 に答える
68 参照

language-agnostic - 在庫管理

251 個のアイテムの在庫があり、それをボックスと単一のアイテムに変換したいとします。

どうすればそれができますか?

そのような結果が欲しい

ただし、結果は50ボックスと1アイテムである必要があります

0 投票する
5 に答える
3439 参照

javascript - Javascript 整数除算、または Math.floor(x) は x | と同等です。x >= 0 の場合は 0?

次の例を見ると、 , forMath.floor(x)と同等のように見えます。それは本当に本当ですか?はいの場合、なぜですか? (またはどのように計算されますか?)x | 0x >= 0x | 0

これは、Javascript で整数除算を実行するのに役立ち(5 / 3) | 0ますMath.floor(5 / 3)

0 投票する
5 に答える
531 参照

generics - int64 は LanguagePrimitives.DivideByInt をサポートしていませんか?

int64をサポートしないのはなぜLanguagePrimitives.DivideByIntですか? 次のように書くのはかなり自然だと思いました:

しかし、コンパイラはそれを言いint64 doesn't support the operator DivideByIntます.

私はチートを試みました:

しかし、うまくいきません。

int64 を int で一般的に除算するにはどうすればよいですか?

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

php - PHP の整数除算はゼロを生成します - フロートにキャストする方法は?

ロシアのカードゲームで、プレイヤーがどのくらいの頻度で悪態をつくか (「悪い言葉」を言います。ロシア語にはたくさんあります) の統計を、次の PostgreSQL テーブルに保持しようとしています。

そして、このデータの整数値 (1 から 100 (オーバーフローは問題ありません)) を生成する必要があります。これにより、次の"swear'o'meter :

ここに画像の説明を入力

だから私は試しています(CentOS 6.2でPHP 5.3を使用):

残念ながら、PHPはおそらく「整数除算」を行っているため、ゼロになります。

floor()$row['swear']$row['lines'] の先頭に追加して、フロートに「キャスト」しようとしましたが、これは役に立ちませんでした。

アップデート:

申し訳ありませんが、元の質問にタイプミスがありました... $quotient は実際には 0 です。出力します。私も次のことを試しましたが、まだゼロです: