問題タブ [long-long]
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.
python - Cython を long long で除算すると Python がクラッシュする
test.pyx に次のコードがあります
短いpythonスクリプトで私はこれを持っています:
test.pyx をコンパイルした後にスクリプトを実行すると、Windows エラー ダイアログ「python.exe has stopped working」と共に次の出力が表示されます。
コンパイルされたコードを呼び出すことはなく、インポートするだけであることに注意してください。また、Python スクリプトの実行が完了した後にのみクラッシュが発生することにも注意してください。iをlong longから just longに変更すると、エラーが解消されることに気付きました。私が欠けている基本的なものはありますか、それともlong longによる除算は必ずしも安全ではありませんか?
それが違いを生む場合、私のセットアップに関するいくつかの情報:
OS: Windows 7、64ビット
Python バージョン: 3.4.2、MSC v 1600 32 ビット
Cython バージョン: 0.22
コンパイラ: mingw32
編集:追加メモ
- Python 2.7.9 32ビットでもテストされ、同じ結果が得られました
- / を // に置き換えても同じ結果が得られます
- 除算を含むすべてのコードが削除されると (コメント アウトされるか、コンパイラによって削除されるなど)、エラーは消えます。
- 完了時に Python がクラッシュしても、コンパイルされたコードは呼び出されたときに適切に機能しているように見えます。
c++ - long long 変数が正解を表示しない
そのいくつかの誤算。
数が多くて困っています。このコードは、いくつかの小さなinputs( N
)では機能しますが、そのような入力100000
では機能しません。
result
変数の正しい最終的な答えは、あるN = 100000
必要があります4999949998
が、このコードの結果は704982702
しかし、tmp
あまりにも長く、オーバーフローしていないようです。
しかし、いくつかの簡単な変更で正しくなりました。
理由がわかりません。知っていますか?
c++ - GCC からの long long integer 定数の警告を消す方法
次のように、大きな整数リテラルを使用するコードがあります。
これにより、コンパイラの警告が表示されinteger constant is too large for 'long' type [-Wlong-long]
ます。ただし、次のように変更すると:
...代わりに警告が表示されuse of C++11 long long integer constant [-Wlong-long]
ます。
この行だけでこの警告を無効にしたいのですが、プロジェクト全体で -Wlong-long を無効にしたり、 -Wno-long-long を使用したりすることはありません。私はそれを囲んでみました:
しかし、この警告ではここではうまくいかないようです。他に試せることはありますか?
で構築してい-std=gnu++1z
ます。
編集:コメントの最小限の例:
g++ -std=gnu++1z -Wlong-long test.cpp
与えられた建物test.cpp:6:20: warning: use of C++11 long long integer constant [-Wlong-long]
これは 32 ビット プラットフォーム、MinGW-w64 (gcc 5.1.0) を搭載した Windows であることに言及する必要があります。最初の警告は私の 64 ビット Linux システムでは表示されないようですが、2 番目の警告 (ll
サフィックス付き) は両方で表示されます。
c++ - 追加後の unsigned long long 間違った値
追加する文字列が 2 つあります。文字列は HEX 値です。文字列を long long に変換し、追加してから文字列に戻します。しかし、この操作はうまくいきません。
コード:
受け取りました
この魔法を説明できる人はいますか?どうすれば修正できますか?
16 進値に戻る
c++ - タイプ 'long long int' からバイナリ 'operator%' への無効なオペランド
私は C++ を使用していますが、次のエラーが発生します。
理由はわかりませんが、「num」は整数なので、演算子「%」を使用できると思います。
誰かがなぜそれが失敗するのか知っていますか?
ありがとうございました
c++ - 切り捨てられた整数除算の削除
T は、このコードで切り捨てられた整数除算をどのように回避しますか? 私の並べ替えられた配列は1 1 1 1 1 1
であるため、a[0] = 1 および a[n] は 1 / 2 = 0.5 である必要があります。
c++ - C++ の長い長い問題
私は署名された long long を使用してきましたが、奇妙な問題がありました。つまり、動作に一貫性がありません。いえ
これは、i の実際の値とは関係のない値を出力する傾向があります (これは cout でも発生しました)。
また%
、 でランダムな動作をします。
これは、if を実行することがi = 15
ありx = 5
、true を返さないため、if ステートメントはコードを実行しません。
x = 7
何らかの理由でtrue を返す傾向があります。
g++ コンパイラーだけだと私が信じているのは、コンパイラーの欠陥かもしれないと私は信じています (それは競争でした)。
これを軽減する方法、またはこれを行っていた理由は大歓迎です。
c - C プログラムでより大きな整数を使用するにはどうすればよいですか?
Windows コンピューターで Codeblocks と GNU コンパイラーを使用しています。コンパイラは、次の条件で実行されます。
私のコードは次のとおりです。
このコードの私の出力:
LONG LONG 整数を参照する行は、コンパイラがエラーを出していたため、コメント アウトされています。
ただし、コードを入力している間、CodeBlocks は、LONG_LONG 定数を実際に使用できることを示すコード ヒントを提供しました。したがって、次の質問に対する回答が必要です。
- 整数と長整数の制限が同じなのはなぜですか? long 整数の値の範囲を大きくするべきではありませんか?
- LONG_LONG 定数で問題が発生するのはなぜですか? これは、long long 整数を使用できないということですか?
ありがとう