問題タブ [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.
iphone - long long 値として iPhone の一意の ID を取得する
iPhone開発初心者です。次の問題があります。
アプリケーションを実行するすべての iPhone に対して一意の ID を取得する必要があります。
github でこの素晴らしいプロジェクトを見つけました: https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5 これらの関数は、16 進値を表す 32 文字の文字列を返します。
この文字列から unsigned long long 値 (64 ビット整数値) を取得する方法を知っている人はいますか?
ありがとう
c++ - 64 ビット G++ 4.6.3 は、同じサイズであっても、特殊な関数テンプレートで long を long long として扱いません。これはバグですか?
次のコードを検討してください。
32 ビット G++ 4.6.3 はこれを正常にコンパイルし、出力を生成します。
ただし、64 ビット G++ 4.6.3 でコンパイルすると、リンカー エラーが発生します。
f<int64_t>()
コメントアウトされた行でコンパイルして実行すると、次のようになります。
とが同じサイズであっても、64 ビット G++ がf<long>
とf<long long>
を別の関数として扱う正当な理由はありますか? それとも、これは私が報告すべきバグですか?long
long long
c++ - 移植可能なコードには long long または int64_t を使用する必要がありますか?
C と C++ の両方で書かれたオープンソースのコードベースがあります。私は、少なくとも64 ビット幅であることが保証されている整数型を探しています。これは、ほとんどの OS X (Intel、64 ビット) およびオープンソースの C および C++ コンパイラを備えた Linux ボックスで、過度にコンパイルすることなく確実にコンパイルできます。エンド ユーザー側の余分な作業。現時点では、Windows および 32 ビット クライアントのサポートは重要ではありません。
私は OS X でいくつかのテストを行いましたが、開発者ツールに同梱されている最新の GCC は C+11 モードをサポートしていません (したがって、の可用性は保証されていないようですlong long
)。long long
特定のバージョン以降、C99 モードが有効になっている場合はサポートされますが、Clang もこれをサポートしません。
移植性が重要な目標である場合int64_t
、代わりに使用する一般的な提案はありますか? long long
フォーマット指定子を使用するのは苦痛に思えます。
パラメータとして受け取る既存の関数やライブラリで使用するために、 int64_t
to long long
(および同様に とunsigned
同等のもの)を確実にキャストできますか? (もちろん、また戻ってきます。)uint64_t
long long
そのような考え方で、GCC にない Clang 機能を必要とするコードを出荷した場合、Clang は Linux で選択されるコンパイラとして GCC に取って代わるのでしょうか? そのコンパイラは、ソース コードをエンド ユーザーに提供するときに、ほとんどの場合、期待できるものでしょうか?
基本的に、移植可能な C および C++ コードに両方のタイプを使用したことのある他の開発者からのアドバイスをお願いしたいと思います。 .
c - C-ctime関数でlonglongデータ型を実際に使用する方法
以前にこれを聞いてみましたが、質問を含めるのを忘れたので(サイトに参加したばかりなので)、実際には問題を解決できませんでした。人々は、コードの2番目のビットが間違っている理由を教えてくれました。仕事。これは宿題の一部です。その目的は、最終的にINT_MAX + 1をctimeに入れて、32ビットマシンでは1970年以降の秒数のビットが不足しているため、日付が2038まで通過できないことを証明することです。 ctimeに長い間?コードの2番目のビットを機能させるにはどうすればよいですか?
それが重要な場合は、すべてC99でコンパイルされます。
作品:
動作しません:
エラー:
performance - Cでlonglongの長所と短所に変換する
データ型long long
の代わりに使用してアルゴリズムを高速化したい。double
私のアルゴリズムは、directedの最短経路を見つけることですacyclic graph (DAG)
。単純に、エッジの重みを追加し、"E: a->b" to b
の新しい重みがb
前の重みよりも小さい場合は、に設定されている親とともに更新されます。
つまり、私のアルゴリズムは単にいくつかの加算と比較の操作です。エッジの重みは元々"double"
、ですが、それらを多数に乗算してにキャストすることは可能ですか"long long"
。この調整によって私のプログラムがより速くなり、検討する価値がある場合。big double
に丸めることによる不安定性の問題をどのように処理できますかlong long
。
ありがとう
c - Cで文字列をlonglongに変換する際の問題
atoll関数でcにlonglong値を適切に設定するのに問題があります。これが私の例です:
これは次のように出力します。値は:0
ただし、これは機能します。
ここで何が起こっているのですか?
bitwise-operators - C の 64 ビット データ型 (long long) に対するビット単位の演算?
ここにいくつかのコードがあります。
出力は 0 ですが、期待しているのは 1 です。これを修正するにはどうすればよいですか? (1 の代わりに 1LL を試し、long long の代わりに uint64_t を試しました。どちらも同じ答えの 0 を返しました。)
c++ - C++ で %lld 指定子よりも cin、cout、または %I64d の使用が好まれるのはなぜですか?
多くのオンライン審査員が「С++ で 64 ビット整数の読み取りまたは書き込みに %lld 指定子を使用しないでください」とアドバイスする理由
cin、cout ストリーム、または%I64d
指定子?を使用することをお勧めします。