問題タブ [uint64]
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.
c++ - uint64より大きい整数を乗算するには?
上記のコードは (私のマシンでは) を出力18446744073709551615
しますが、少なくとも 25 桁の数字を乗算しようとしています。より大きい 2 つの整数の乗算を適切に処理する方法はuint64
?
c++ - 数値が uint32 および uint64 として宣言されている場合、整数をバイナリに変換すると異なる出力が表示される
整数を同等のバイナリ表現に変換しようとしていました。
次のアルゴリズムを使用していました
たとえば、 uint32_t として宣言された「5」に対してこの関数を実行すると、正しい結果が得られます
しかし、数値を uint64_t として宣言し、ビットセットのサイズを 64 ビットに変更すると、結果はまったく異なります
同じことをするコードを追加する
uint32 で取得した結果と同じ結果が表示されますが、一方が他方の横に配置されています。
これは、uint64_t が CPP のようなプログラミング言語でどのように実装されているのか疑問に思いました??
stdintヘッダー ファイルを調べて詳細を取得しようとしましたが、そこにあるリンクが非常に役立ちました。
お時間をいただきありがとうございます。
c++ - ブーストでの unsigned long long シリアライゼーション
g++4.8.1 とブースト 1.55.0 を使用して Linux ubuntu で C++ コードをコンパイルしています。私のプログラムは、unsigned long long arrayであるメンバーテーブルを持つクラス A を使用します。同じクラスには、単純な int である他のメンバーがあります。ブーストを使用してデータをシリアル化しています。Aのテーブル以外のすべてをシリアル化すると、私のコードは機能し、すべて正常にコンパイルされます。
ただし、 tableをシリアライズしようとするとコンパイルされません。次のエラーが表示されます。
ベクトルまたは/および他のデータ型を使用すると機能することを読んだことがあります。ただし、(速度のために) unsigned long long の生の配列を使用することが重要です。何か案が ?
ありがとうございます!
c++ - uint64_t が誤って 18,446,744,071,590,568,320 に達しました
65 歳以下の年齢を入力すると、いつでも 2,100,000 未満の数字が得られます。しかし、68 歳以上を入力すると、結果はすぐに uint64_t の最大値である 18,446,744,071,590,568,320 になります。なぜこの結果が急上昇したのか、私にはわかりません。210万くらいまでは問題なく動いています。
ここにいくつかの出力があります: