これまでのC#でincrementSingカウンタを開発する必要があります。私はGUIDをlongに変換することを考えています。それはCで可能ですか?ますます増加するカウンターを開発する他の方法はありますか?GUIDをlongに変換する
答えて
いいえ、GUIDは128ビットなので、64ビットなので長時間は収まりません。 A System.Decimalは128ビットなので、長い道のりが得られますが、もちろんその限界もあります。たとえ文字列にカウンタを保存しても、それには限界があります。コンピュータalswaysには限界がありますので、あなたはしばらくの間続けることができるように十分大きなものを見つけなければなりません。
編集:.NET 4.0では
かなり大きなものとなり、それがメモリに収まる必要があるためでもそれは限界がある、覚えることができるBigIntegerがあります。
このようなものを試すことができます。
byte[] gb = Guid.NewGuid().ToByteArray();
int i = BitConverter.ToInt32(gb,0);
long l = BitConverter.ToInt64(gb,0);
非常に安全な場合は確信しています。 :p
私はそれがないと確信しています。しかし、セキュリティは要求事項として言及されていないので重要ではありません。 – sehe
これは配列の先頭バイトを取ります。その結果、*与えられたGUIDと同じように一意でない結果になります* !!!!!! !! (これにはさらに感嘆符が必要です) –
あなたのGUIDに索引を置くのは楽しいです!!!!!!!!!!!!!! – DeadlyChambers
問題は、GUIDのセットがすべての整数の精度よりはるかに優れているということです。だから本当にあなたは選択の基数を大幅に縮小しています。これを行うには理由がありません。
数字を増やしても心配する必要がない場合は、数字が大きいライブラリIntXがあります。あなたの番号ジェネレータのローカル状態をファイルまたはメモリに格納することができます。
GUIDは128ビットの整数です。 longは符号付き64ビット整数です。 ulongは0〜18,446,744,073,709,551,615の値を持つことができます。それで十分ですか?または小数点を使用したいですか?
[__m128i](http://msdn.microsoft.com/en-us/library/26232t5c.aspx)... – sehe
- 1. SQL Server - Guid VS. Long
- 2. utmを異なるデータ(データ?)でlong longに変換する
- 3. GUIDを文字列に変換する
- 4. Raw(16)をGUIDに変換する
- 5. GUIDをvarchar(32)に変換する
- 6. セッションをGUIDに変換する
- 7. CURRENCYをlongに変換する
- 8. Stringをlongに変換する
- 9. long intをconst time_tに変換する
- 10. java.net.InetAddressをlongに変換する
- 11. ASCII文字列をlong longに変換する
- 12. 'long long'(または__int64)を__m64に変換する方法
- 13. c#:16進数をGUIDに変換
- 14. C++は引数 '1'〜 'long'の 'long double'を 'long double *'に変換できません。
- 15. 変換されたguid
- 16. 'unsigned long'をJavaの文字列に変換するには
- 17. Reflectionを使用してGUIDを文字列に変換する
- 18. GUIDをエンティティフレームワークを使用した文字列に変換する
- 19. C#のObject Guidにオブジェクト文字列を変換する方法
- 20. ダッシュ付きの16進数をGUIDに変換する
- 21. GUIDをC#の文字列に変換する方法は?
- 22. Actionscript 3の文字列をGUIDに変換する
- 23. C#Winform:コンボボックスのValueMemberプロパティをlongに変換する
- 24. C++でJava longをint64に変換する
- 25. 文字列をLongに変換するときのScala NumberFormatException?
- 26. KotlinでIntをLongに変換する方法?
- 27. GMapのLocalPointsをLat/Longに変換する
- 28. DateTimeの値をLongに変換する方法
- 29. Long Intタイムスタンプを日付/時刻に変換する
- 30. QstringをLongに変換する方法は?
なぜカウンターが必要な場合、GUIDをlongに変換したいのですか? – Tigran
私はあなたがこれのGUIDを必要としないので、私は質問を理解するとは思わない。カウンタが必要な場合は、 'long Counter = 0;'を使用して、 'long x = Counter;'を使用する必要がある場合は '++ Counter 'を呼び出すことができます。なぜそれをGUIDとして必要とするのかを明確にすることはできますか? – shelleybutterfly
とにかくGUIDの人は誰ですか? – BoltClock