問題タブ [bigint]
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.
sql - bigint datetimes を使用して X 日より古いレコードを選択する
テーブルに bigint として保存されている日付があり、30 日より古いレコードを選択しようとしています。この質問に関連する SO と Google でたくさんの質問を見てきましたが、必要なものが見つかりません。
これは私が持っているもので、非常に非効率的です:
私が理解していることから、bigintmytstamp
フィールドをタイムスタンプに変換して、「30 日前」のタイムスタンプと比較しています。テーブル内のすべてのレコードに対してこれを行います:(。現在のタイムスタンプ-30日をbigint ONE TIMEに変換し、それをすべてのbigint日付と比較する方が効率的です。
私のSQLスキルは弱いので、簡単に行ってください:)。助けてくれてありがとう。
sql-server - BitConverter.ToInt64 値を持つ SQL Server varbinary bigint が異なる
long
値を SQL Server テーブルに次のように保存しますvarbinary(max)
。
ここで、T-SQL クエリでその値を操作する必要がありますが、値を取得しようとすると、次のようになります。
異なる数値を返します。たとえば-8588797048854775808
、.NET で保存した場合、T-SQL では次のようになります。33802181122903688
何が問題なのか教えてください。その問題に解決策はありますか?
division - BigInt 除算のコーディング
質問: BigInt 除算の優れた効率的なアルゴリズムは?
試みたもの: 多項式の長除算、int による除算 (オーバーフロー剰余)、2 進長除算 (何か良いかどうかはわかりませんが、以下の投稿にあるものです)、商推測除算 (大きな商での減算が多すぎます)。
私はしばらく BigInt 除算をコーディングしようとしています。私の最新のアルゴリズムは 2 進数除算を使用していますが、これが最善の方法だとは思いません。
そこで、どのようなアルゴリズムが存在するかについていくつかのアイデアを探しています。)。
私が使用している言語は、配列やさまざまなデータ型などのアイテムの受け渡しをサポートしていません。関数の先頭で宣言されたローカル配列だけでなく、整数とブール値、グローバル配列にもこだわっています。
高速化のために 32768 のワード サイズで作業していますが、たまたま 2^15 です。このため、基数 2 への変換とその逆を迅速かつ効率的に行うことができます。そのため、バイナリ除算アルゴリズムのアプローチを試すことにしました。
私の最初のアプローチでは、状況によっては残りがオーバーフローしましたが、非常に高速でした。私の次のアプローチは、多項式の長除算のアイデアでした。商のアイデアも試してみましたが、引き算が多すぎるため、非常に大きな数では失敗します。全体として、安っぽいバイナリ除算アルゴリズムが最善の策であると思います。|。
数値は、除数配列と剰余配列の終わりに向かって小さくなります。それらは、被除数配列の先頭に向かって小さくなっています。
最終的な答えは、サイズが binaryDividendBufferSize (商) で、剰余がサイズ余剰サイズ (剰余) で binaryDividendBuffer に格納されます。このことはバグなしで動作しますが、私はそれが本当に悪いと感じています:o.
コード:
mysql - 外部キーを持つテーブルを使用して、mysql で bigint を int に変更する方法
最近、自分のデータベースの 1 つに、"int" 型に置き換えることができる bigint 型のフィールドがいくつかあることに気付きました。問題は、データベースが既にオンラインで使用中であることと、動作中の外部キーがあることです。そのため、オフライン DB のデータ型を変更しようとすると、mysql はそれを許可せず、エラー メッセージ「#1025」が生成されます。 - (...) の名前変更エラー」。
では、外部キーを満足させながらこれらのフィールドを変更するにはどうすればよいでしょうか? (そして既存のDBを一掃しません!)
javascript - javascript ints が正しく評価されない
だから私はjavascriptアプリケーションを書いています。基本的に、ある数値が別の数値よりも大きい場合、それらの値を交換したいと思います:
これは、ある時点までは問題なく機能しますが、数値が大きくなり始めると、次のようになります。
その後、式は false と評価され、何もしません。問題が何であるかを知っている人はいますか?ありがとう!
mysql - mysqlはint列を外部キーを使用してbigintに変更します
データベース内のいくつかの主キー列のデータ型をINTからBIGINTに変更したいと思います。次の定義は、問題を説明するためのおもちゃの例です。
次のコマンドのいずれかを実行しようとすると、次のようになります。
エラーが発生しています
SHOW INODB STATUS出力:
外部キー定義は、どちらかの側の列タイプの変更をブロックしていると思います。この問題を解決するための単純なアプローチは、外部キー定義を削除し、列を変更して、外部キーを再定義することです。より良い解決策はありますか?
c++ - Bigint + 演算子
私はbigintプロジェクトを行っていますが、テストケースで加算演算子が正しく機能しない理由について困惑しています。
おそらく不要なので、.hファイルを除外しています。
bigint.cpp
Main.cpp (テスト ケース)
このテスト ケースでは、プログラムは assert(result == "10"); で中止されます。
ただし、assert(result == 10); を除いて同じテスト ケースがある場合。プログラムが実行されます。
誰でも理由を言えますか?
database - Liquibaseの列のデータ型が混乱する
本番環境に既存のデータベースがあります。liquibaseを使用してスキーマをエクスポートし、新しい顧客のインストール時に使用するベーススクリプトを作成しました。LiquibaseはmssqlのすべてのID列をBIGINTとしてエクスポートしましたが、実際にはデータベースではNUMERICでした。
新しいテーブルと4つのキーを作成するアップグレードスクリプトを古いテーブルに追加すると、エラーが発生します。列が外部キーの参照列と同じデータ型ではありません。
何が起こるかというと、アップグレードするだけの(そしてクリーンインストールを行わない)顧客はデータベースにNUMERIC列を持ち、新しいBIGINT列と衝突します。
問題は、データベースの種類ごとに異なる種類であるため、どうすればよいかということです。迷っています
java - BigInt.add() を実装していますか?
BigInteger クラスから独自のバージョンの add() メソッドを実装しようとしています。これまでのところ、同じ長さの 2 つの数値を指定すると完全に機能しますが、長さが異なる 2 つの数値を指定するとコンパイルに失敗します (範囲外のインデックス)。この問題を解決する最善の方法は何でしょうか?
それが役立つ場合、加算される 2 つの値が 10 と 1 のときの出力は 20 です。