2016-05-30 7 views
1

このコンソールアプリケーションを起動すると、32ビット文字列の代わりに0が得られます。しかし、エラーは発生しません。floatのバイナリ文字列表現は0を返す

static void Main() 
    { 
     double num = 2.75; 

     byte [] bytes = BitConverter.GetBytes(num); 
     int toInt = BitConverter.ToInt32(bytes, 0); 
     string bitString = Convert.ToString(toInt); 

     Console.WriteLine(bitString); 
    } 
+0

try 'Convert.ToString((int)num、2)' –

+0

@ M.kazemAkhgary:それは彼が望むものではありません。 – SLaks

+0

@ M.kazemAkhgary Yoursが '10'を出力します –

答えて

2

doubleは64ビットである。

トップ32ビットはすべてゼロです。

floatが必要です(またはすべてのビットを表示するにはToInt64に電話してください)。

+0

'暗黙的に 'long'型を 'int'に変換できません。 '明示的な変換が存在しますか? –

+0

また、' long'と一緒に行かなければなりませんでした。 'float'について文句を言います。 –

+0

' int toInt'を 'long toInt'に変更します... @SvetanDimoff –

関連する問題