2016-09-18 4 views
0

に一致する1に??解析の正の長へのuintと持っている1 <strong>正</strong><strong>ロング</strong>番号に<strong>UINT</strong>番号を解析し、そのUINTと長い数との間に1対1のマッチングを持つ安全な方法はあり

+0

IはUINT番号を受信し、ちょうど(長い)数としてキャストした場合、長い表現で符号ビットがの一部として扱われることがあるため、結果はまた、陰性であることができます値 –

+2

符号はMSB(最上位ビット)にのみ含まれています。 32ビットのUINT(0〜〜4bn)は、64ビット長で完全に表され、31ビットはスペアになります。 – StuartLC

答えて

1
uint i = 0; 
long o = Convert.ToInt64(i); 

又は

uint i = 0; 
long o = (long)i; 
+0

Convert.ToInt64(i)を実行することによって結果が負である可能性もありますか、できませんか?この方法とちょうど(長い)私は違いがありますか? –

+0

uintが入力されている場合、負のint64を取得できないため、longへのキャストは – rlee

+0

符号なしの値として1011(バイナリ)で十分です。この数値を符号付きに変換し、得られる値は-3です。それは正しいのではないですか? –

関連する問題