問題タブ [int64]

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

.net - 2 つの Int32 を結合して Int64 にする

よく使う Dictionary <Int64, byte> を用意します。つまり、大量のデータをロードして何日も実行されるループです。Int64 は 2 つの Int32 から来ています。バイトは、多くの非常に長いリストからのこれら 2 つの Int32 間の距離 (カウント) です。

このループで私がする必要があるのは

  • キーを生成する
  • キーがディクショナリに存在しない場合は、キーと値を挿入します
  • キーが存在し、新しい値 (バイト) が既存の値より小さい場合、既存の値を新しい値に置き換えます。

現在、私は直接計算を使用してキーを生成しています。より高速な方法があることはわかっていますが、それを理解することはできません。それが最適化の方法だと思うので、シフトをタグとして付けましたが、わかりません。

次に、ループが完了したら、Int64 から 2 つの Int32 を抽出して、データをデータベースに挿入する必要があります。

ありがとう

コメントごとに、2 つの Int32 を 1 つの Int64 に結合するために使用する数学

また、最適なキーは Int64 ではない場合があります。私が持っているのは、一緒にキーを形成する 2 つの Int32 です。そしてバイトの値。その複合キーをすばやく検索する必要があります。ディクショナリは高速ですが、複合キーをサポートしていないため、実際には複合キーである単一のキーを作成します。SQL Int32A では、Int32B が PK を形成します。

複合キーを使用しない理由は、Dictionary の検索速度が必要であり、私の知る限り、Dictionary は複合キーをサポートしていないためです。これは製品コードです。SQL テーブルには、実際には 3 番目のキー (Int32 sID、Int32 IntA、Int32 IntB) があります。このパーサーでは、一度に 1 つの sID のみを処理します (sID は順番に処理されます)。SQL への複合キー検索から始めました (1 回の実行で数十億)。IntA、IntB をディクショナリに引き出して単一の sID を処理し、各 sID の完了時に SQL にロードすると、パフォーマンスが 100:1 向上しました。パフォーマンスの向上の一部は、辞書から挿入するときのように挿入され、PK 順序で挿入できます。新しい IntA と IntB は解析によってソートされて生成されないため、SQL に直接挿入するとインデックスが大幅に断片化され、実行の最後にインデックスを再構築する必要があります。

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

c# - C#Int64より大きい数値をHexaDecimalに変換します

C#で大きな数(例:9407524828459565063)を16進数(例:828E3DFD00000000)に変換しようとしています。

問題は、数値がInt64の最大値よりも大きいことです。

私はいたるところを見上げましたが、実用的な解決策を見つけることができませんでした。

ここで何か助けはありますか?

ありがとうございました。

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

delphi - Int64定数を宣言する方法は?

Delphiで定数を定義しようとしています:

そして、私はエラーを受け取ります:整数定数が大きすぎます

注: 14,695,981,039,346,656,037 10進数は16進数と同じ0x14650FB0739D0383です。

Int64この定数を宣言するにはどうすればよいですか?

私が試した他のいくつかのこと:

修正

私の基本的な仮定は間違っていました。

Windows 7 Calculatorに貼り付け14695981039346656037て、16進数に変換すると、16進数に相当するもの146959810393466560370x14650FB0739D0383次のようになります。

ここに画像の説明を入力してください

それは正しくありません。

したがって、上位ビットが設定されていない16桁の16進値を見たとき、64ビットの符号付き整数に収まると推測しました。

実際には、16進数に相当するもの14695981039346656037は...何か他のものです。ロブ、あなたは正しかった!(おそらく)

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

json - goでのint64のjson解析。null値

Goでjsonストリームを解析しようとしています。簡単な例を作成しました。

これは私に与えます

sqlパッケージでnull許容のint64を見つけましたが、jsonはそれを処理できないようです。

jsonが処理できるnull許容のint64型はありますか?可能であれば、jsonnullが-1またはMinValueに変換されることに満足しています。

ご意見ありがとうございます、ファビアン

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

c++ - C++: 列挙型に一意の値しかないことを確認する方法

私たちはVS 2008を使用しています

多くの開発者が入力する大きな列挙型があります

この列挙型には __int64 型 (Microsoft 拡張機能) があり、列挙型の値が一意でないことをコンパイラに訴えさせたいと考えています。

それが通常の列挙型である場合、私は次のようにします:

E1に2つの同じ値がある場合、関数Fはエラーになります

開発者がスイッチに新しい値を追加するのを忘れた場合、別のエラーが発生します

しかし、私の列挙型は __int64 (または long long) です

そして、E1 e1に対して同じスイッチを実行しようとすると、値が切り捨てられ、値に不満があり、違いは0x100000000または0x200000000のいずれかです....

e1 を __int64 にキャストすると、開発者がスイッチに新しい値を追加するのを忘れても、コンパイラは文句を言いません (そのため、チェック関数全体が役に立たなくなります)。

質問: 誰かが私に何ができるか知っていますか? または、VS 2008 (または C++) には、enum : __int64 が一意の値しかないことを確認するための別の手段がありますか?

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

c++ - C++ を python に変換 - memcpy uchar を int64 に変換

サーバー (Python) で実行する必要があるコード (C++) をコピーしています。以下の部分まではすべてうまくいきました。

一言で言えば、ここに私がC++プログラムに持っているものがあります:

そうです、char 配列を作成し、その値を int64 にコピーします。

私の質問は次のとおりです。Pythonでそれを行うにはどうすればよいですか? つまり、pb と同等のバイト文字列を持っていますが、そこからどこへ行くべきかわかりません (特に、すべてのゼロがあるため...)。

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

c# - Int64によるビットシフト

Int64変数をシフトする必要があります。データベースファイルから疑似数学関数を解析しています。変数はuint32またはint32であるため、何も失うことなくそれらを同等に処理するために、それらをInt64に入れました。ツリーノードの1つで、Int64をビットシフトする必要があります。

残念ながら、シフト演算子はInt64には適用されません。私が気付いていないInt64をビットシフトする標準的な方法はありますか?

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

jquery - JSON Int64 データがランダムに反転/変更される

jquery を使用して、Web サーバーから json データを取得しています。返された Fiddler データを確認すると、すべて正常に見えます。ただし、Chrome/IE/ または Safari でデバッグを開始すると、いくつかの値が変更されていることに気付きます。たとえば、Int64 は次の値でサーバーから送信されます: 10150987224093521. ただし、デバッグすると、1015098722409352* 0 * と表示されます。値は常に 1 ずつ減ります。Fiddler は正しい値 (10150987224093521) を表示しています。ランダムに発生します。その論理的な理由を見つけることができません。なぜこれが起こっているのかについての考えやヒントはありますか?

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

c++ - Visual Studio2010SP1での64ビット整数初期化エラー

私は奇妙なバグ/エラー/自己愚かさの懸念を持っています。私はCで小さなアプリケーションを開発しており、Visual Studio2010SP1を使用しています。問題のあるコード:

デバッグすると、次の結果が得られます。

質問は、なぜですか?uint64_tの最大値は2^64-1または18446744073709551615であり、int64_tの最大値は2^63-1または9223372036854775807です。

65535 * 65535 * 64 = 274869518400、これは両方の最大値よりも低くなっています。では、なぜこれらの結果が得られるのでしょうか。

私はここで完全に迷子になっています、いくつかの助けをいただければ幸いです。

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

php - phpでInt64(long)を使用するが、文字列は使用しない方法は?

dotnet、java、c ++のようなphpでInt64を使用する方法は?

例えば:

mysqlのデータ型はbigint(20)です。phpから値を保存したいと思います。1つの解決策がmysqlプロシージャで文字列を使用していることを知っています。

テーブルケース:

mysqlプロシージャの場合:

phpコードケース:

上記の方法は問題ありませんが、やりたくありません。他に解決策はありますか?

例2:

PHPの読み取りMYSQLデータ出力JSONコードを次のように使用したいと思います。

だがしかし :

どうしたらいいのかわからない?