問題タブ [integer-overflow]

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

ruby - BCryptは、長くて似たようなパスワードは同等だと言っています-私、宝石、または暗号化の分野に問題がありますか?

私はBCryptを試していましたが、次のことがわかりました。重要な場合は、ruby 1.9.2dev(2010-04-30トランク27557)を実行しています[i686-linux]

最初は、パスワードが一定の長さになると、すべてのハッシュで非類似性が失われ、非常に類似していない(つまり、長さが異なる)場合にのみ、異なるものとして認識されると思いました。ハッシュ関数について私が知っていることから、それは私にはあまり妥当ではないように思われましたが、より良い説明は見られませんでした。

次に、各long_stringsを短縮して、BCryptがそれらを区別できるようになる場所を確認しました。長い文字列をそれぞれ100文字程度に短縮すると、最後の試行('passwor')が開始されることがわかりました。同様にtrueを返します。だから今、私は何を考えるべきかわかりません。

これの説明は何ですか?

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

c++ - How to avoid integer overflow?

In the following C++ code, 32767 + 1 = -32768.

Is there any way to just leave "var" as 32767, without errors?

0 投票する
11 に答える
26327 参照

c - 埋め込みCでラッピングカウンターを処理する方法

アプリケーションの目盛りを表示するカウンターを処理する必要があります。カウンターは32ビットなので、ラップするときの対処方法を知っておく必要があります。例えば:

aを返す関数と(timestamp + shifttime)、時間が経過したかどうかに応じて1または0を返す関数がありますが、カウンターがどのようにラップする可能性がありますか?これに対処しますか?


すべての回答者に感謝します。この編集でさらに詳しく説明します。

STM32Cortex-M3を使用しています。RTCカウンターを使用して、アプリケーションが特定の間隔で発生する必要のあるタスクをスケジュールするための目盛りとして使用したいと思います。RTCはオーバーフロー割り込みを生成できるため、割り込みの検出に問題はありません。私が抱えている主な問題(または少なくとも私が問題だと思う)は、特定のタスクがIEを取得するとき(timestamp+shift)です

計算を簡単にするために、私のRTCカウンターの長さがわずか8ビットであると仮定しましょう。

タイムスタンプを取得したときに現在のカウンターが250になっている場合、それはそれを意味しFlashLedTimeStamp = 14、それが期限切れになっているStatusLedTimeStamp = 253ことを確認するにはどうすればよいですか?FlashLedTimeStamp

現在のカウンターが何であるか、特定のタイムスタンプが期限切れになっているかどうかを確認するために、必ずしも常にチェックするわけではないことに注意してください。これにより、私が抱えている問題が明確になることを願っています。

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

c# - 整数制限を超えて整数値をインクリメントする - C#

ループが完了するまで整数値を増やし続ける for ループがあります。したがって、制限 n が double 変数で、インクリメントされる変数 'i' が整数の場合、i はその制限を超えてインクリメントされます。

容量を超えた場合、「i」はどうなりますか? i の値はどのように変化しますか? 実行時エラーが発生しますか?

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

c99 - ctype.h整数オーバーフローの処理

符号なし文字にキャストされたときに、UCHAR_MAXがINT_MAXより大きい{INT_MAX + 1...UCHAR_MAX}の間にある文字値を処理する適切な方法は何ですか。

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

c# - C#での算術例外

なぜC#で例Aは有効でコンパイル可能であり、例Bはコンパイルされないのに、ラップするだけなのですか?

A

また

B

また

構成でcheckedメソッド、ブロック、または属性を使用して明示的にチェックしない限り、デフォルトでは算術例外がチェックされないことをデフォルトで知っています。私の質問は、算術例外がどのように発生するかよりもコンパイラに関連しています。

0 投票する
6 に答える
1044 参照

c - long double では不十分な場合に使用する型は?

行列の各エントリに素数を割り当てるプログラムを作成しており、そのうちのいくつかを乗算する必要があります。結果の数値は急速に増加し、long double で「ラップアラウンド」を取得しているため、どのタイプを使用するかについて途方に暮れています:S

すべての助けに感謝します。

-ピッケル

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

actionscript-3 - Actionscript getBounds:targetCoOrdinateSpaceがステージに追加されていない場合はどうなりますか

2つの表示オブジェクトdispObj1、dispObj2があります。
dispObj2.stageがnullです。(つまり、ステージに追加されません)dispObj1.getBounds(dispObj2)
の出力はどうなりますか? それは明確に定義されていますか、それとも任意でしょうか?バウンディングレクタングルのxが 6710785に近づくと、これ はどこかで整数オーバーフローの症状 だと思います。


しかし、他の場合には、x、y、width、heightの妥当な値を取得しました。

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

c++ - 未定義の動作なしでダブルチャンク追加を行う方法は?

公衆衛生警告の編集-この質問には、未定義の行動に関する誤った仮定が含まれています。受け入れられた答えを参照してください。

最近のブログ投稿を読んだ後、私はすべての標準を回避することの実用性について多くのことを考えてきました-CおよびC++コードの未定義の仮定。これは、符号なし128ビット加算を行うためにC++から切り取ったスニペットです...

これは明らかにオーバーフロー動作に関する仮定に依存しています。明らかに、ほとんどのマシンは適切な種類の2進整数をサポートできますが(おそらく32ビットチャンクなどから構築されます)、オプティマイザーがここで標準未定義の動作を悪用する可能性が高まっているようです。つまり、m_Low < p.m_Low条件が通過できる唯一の方法は、m_Low += p.m_Lowオーバーフローの場合です。これは未定義の動作であるため、オプティマイザーは、条件が常に失敗することを合法的に判断できます。その場合、このコードは単に壊れています。

したがって、問題は...

未定義の動作に依存することなく、上記の合理的に効率的なバージョンをどのように書くことができますか?

適切な64ビットのバイナリマシン整数があるが、未定義の動作を可能な限り最悪の(または不可能な)方法で常に解釈する悪意のあるコンパイラがあると想定します。また、特別な組み込み、組み込み、ライブラリなど、それを行うためのライブラリがないと仮定します。

マイナーな説明を編集 します-これはオーバーフローを検出するだけでなく、m_Lowとm_Highの両方が2 ^ 64を法とする正しい結果になるようにすることでもあります。これも、標準では定義されていません。

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

c++ - 整数オーバーフローによって C++ iostream でエラーが発生するのはなぜですか?

わかりましたので、C++ iostream には非常に奇妙に感じるいくつかの問題がありますが、これは MSVC++ と G++ の両方で発生することを考えると、おそらく定義された動作です。

このプログラムがあるとします:

最初の cin に int の最大制限より大きい値を指定して意図的にオーバーフローさせた場合、それ以降のすべての呼び出しcin.operator>>()は何らかの理由ですぐに返され、a何らかの値に設定されます。値は未定義のようです。

この動作はなぜ、どこに文書化されていますか? このようなオーバーフローが発生したかどうかを確認する方法はありますか?

また、この同様のプログラムは意図したとおりに動作するようです。値をオーバーフローすると、a何らかの値が得られ、オーバーフローが発生しなかったかのように続行します。