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

0 投票する
0 に答える
202 参照

python - Cython を long long で除算すると Python がクラッシュする

test.pyx に次のコードがあります

短いpythonスクリプトで私はこれを持っています:

test.pyx をコンパイルした後にスクリプトを実行すると、Windows エラー ダイアログ「python.exe has stopped working」と共に次の出力が表示されます。

コンパイルされたコードを呼び出すことはなく、インポートするだけであることに注意してください。また、Python スクリプトの実行が完了した後にのみクラッシュが発生することにも注意してください。ilong 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 がクラッシュしても、コンパイルされたコードは呼び出されたときに適切に機能しているように見えます。
0 投票する
1 に答える
86 参照

c++ - long long 変数が正解を表示しない

そのいくつかの誤算。

数が多くて困っています。このコードは、いくつかの小さなinputs( N)では機能しますが、そのような入力100000では機能しません。

result変数の正しい最終的な答えは、あるN = 100000必要があります4999949998 が、このコードの結果は704982702

しかし、tmpあまりにも長く、オーバーフローしていないようです。

しかし、いくつかの簡単な変更で正しくなりました。

理由がわかりません。知っていますか?

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

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サフィックス付き) は両方で表示されます。

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

c++ - 追加後の unsigned long long 間違った値

追加する文字列が 2 つあります。文字列は HEX 値です。文字列を long long に変換し、追加してから文字列に戻します。しかし、この操作はうまくいきません。

コード:

受け取りました

この魔法を説明できる人はいますか?どうすれば修正できますか?

16 進値に戻る

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

c++ - タイプ 'long long int' からバイナリ 'operator%' への無効なオペランド

私は C++ を使用していますが、次のエラーが発生します。

理由はわかりませんが、「num」は整数なので、演算子「%」を使用できると思います。

誰かがなぜそれが失敗するのか知っていますか?

ありがとうございました

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

c++ - 切り捨てられた整数除算の削除

T は、このコードで切り捨てられた整数除算をどのように回避しますか? 私の並べ替えられた配列は1 1 1 1 1 1であるため、a[0] = 1 および a[n] は 1 / 2 = 0.5 である必要があります。

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

c++ - C++ の長い長い問題

私は署名された long long を使用してきましたが、奇妙な問題がありました。つまり、動作に一貫性がありません。いえ

これは、i の実際の値とは関係のない値を出力する傾向があります (これは cout でも発生しました)。

また%、 でランダムな動作をします。

これは、if を実行することがi = 15ありx = 5、true を返さないため、if ステートメントはコードを実行しません。

x = 7何らかの理由でtrue を返す傾向があります。

g++ コンパイラーだけだと私が信じているのは、コンパイラーの欠陥かもしれないと私は信じています (それは競争でした)。

これを軽減する方法、またはこれを行っていた理由は大歓迎です。

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

c - C プログラムでより大きな整数を使用するにはどうすればよいですか?

Windows コンピューターで Codeblocks と GNU コンパイラーを使用しています。コンパイラは、次の条件で実行されます。

私のコードは次のとおりです。

このコードの私の出力:

LONG LONG 整数を参照する行は、コンパイラがエラーを出していたため、コメント アウトされています。

ただし、コードを入力している間、CodeBlocks は、LONG_LONG 定数を実際に使用できることを示すコード ヒントを提供しました。したがって、次の質問に対する回答が必要です。

  1. 整数と長整数の制限が同じなのはなぜですか? long 整数の値の範囲を大きくするべきではありませんか?
  2. LONG_LONG 定数で問題が発生するのはなぜですか? これは、long long 整数を使用できないということですか?

ありがとう