質問

longintに変換したい。

long> int.MaxValueの値があれば、それをラップアラウンドさせていただきます。

最善の方法は何ですか?

役に立ちましたか?

解決

(int)myLongValueを実行するだけです。これは、uncheckedコンテキスト(コンパイラのデフォルト)で必要な処理(MSBの破棄とLSBの取得)を正確に実行します。値がOverflowExceptionに収まらない場合は、checkedコンテキストでintをスローします: ジェネラコディセタグプレ

他のヒント

ジェネラコディセタグプレ

int.MaxValueよりも大きい場合にどうなるかはわかりませんが。

実際の値ではなく、チェックサム/ハッシュコードとしての使用法に関心がある場合があります。この場合、組み込みメソッドGetHashCode()が適切な選択です: ジェネラコディセタグプレ

安全で最速の方法は、キャストする前にビットマスキングを使用することです... ジェネラコディセタグプレ

Intのサイズはマシンに依存するため、ビットマスク(0xFFFFFFFF)の値はIntのサイズに依存します。

しません ジェネラコディセタグプレ

数学的に言えば、正しい方法ですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top