タグ付けされた質問 「integer-division」



10
整数除算:doubleをどのように生成しますか?
このコードブロックの場合: int num = 5; int denom = 7; double d = num / denom; の値はdです0.0。キャストすることで強制的に動作させることができます: double d = ((double) num) / denom; しかし、正しいdouble結果を得る別の方法はありますか?何が起こるかを知っているプリミティブをキャストするのは好きではありません。

5
GCCが整数除算を実装する際に奇妙な数による乗算を使用するのはなぜですか?
私は約読んでいるdivとmul組立オペレーション、と私はC言語で簡単なプログラムを作成することにより、アクションでそれらを見ることにしました。 ファイルDivision.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } そして、次のコードでアセンブリ言語コードを生成します。 gcc -S division.c -O0 -masm=intel しかし、生成されたdivision.sファイルを見ると、div操作は含まれていません。代わりに、ビットシフトとマジックナンバーを使用して、ある種のブラックマジックを実行します。計算するコードスニペットはi/5次のとおりです。 mov rax, QWORD PTR [rbp-16] ; Move i (=9) to RAX movabs rdx, -3689348814741910323 ; Move some magic number to …


12
数の除算剰余を見つける
Pythonで残りの数の除算を見つけるにはどうすればよいですか? 例: 数値が26で、除算された数が7の場合、除算の余りは5になります (7 + 7 + 7 = 21および26-21 = 5以降)。

9
doubleに割り当てたときに2つのintを除算すると正しい値が得られないのはなぜですか?
次のスニペットでどうして int a = 7; int b = 3; double c = 0; c = a / b; c予想通り、2.3333ではなく2になります。場合aとbダブルスあり、答えは2.333に変わりはありません。しかし、確かにc すでにdoubleであるため、整数で動作するはずでしたか? では、どうしてint/int=doubleうまくいかないのですか?


2
Pythonで整数除算と浮動小数点から整数への変換の違いの理由は何ですか?
私は最近int()、浮動小数点を0に向かって丸めるのに対し、整数除算は浮動小数点をその床に向かって丸めることに気づきました。 例えば: -7 // 2 = -4 int(-7/2) = -3 私は指定するドキュメントを読みました: クラスint(x、base = 10) 数値または文字列xから構成される整数オブジェクトを返すか、引数が指定されていない場合は0を返します。xが数値の場合、xを返します。int()。浮動小数点数の場合、これはゼロに向かって切り捨てられます。 そして: 階分割 最も近い整数に切り捨てる数学除算。フロア除算演算子は//です。たとえば、式11 // 4は、floatのtrue除算によって返される2.75とは対照的に、2に評価されます。(-11)// 4は-3であることに注意してください。PEP 238を参照してください。 しかし、2つの同様の演算(浮動小数点から整数への除算)が異なる結果を返す必要があることは、私には非論理的です。 機能の違いに動機はありますか? ありがとうございました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.