2016-05-30 6 views
1

Wenn ich diese Konsolenanwendung starte, bekomme ich 0 statt 32-Bit-String. Es wirft jedoch keinen Fehler auf.Binäre Zeichenfolgendarstellung eines float gibt 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

versuchen 'Convert.ToString ((int) num, 2)' –

+0

@ M. kazemAkhgary: Das ist nicht, was er will. – SLaks

+0

@ M.kazemAkhgary Yours druckt '10' –

Antwort

2

double ist 64 Bits.

Sie betrachten die oberen 32 Bits, die alle Null sind.

Sie möchten float (oder rufen Sie ToInt64, um alle Bits zu sehen).

+0

' Kann den Typ 'long' nicht implizit in 'int' umwandeln. Eine explizite Konvertierung existiert (fehlt Ihnen ein Cast?) ' –

+0

Außerdem musste ich mit' long' gehen, beschwere mich über 'float' –

+0

ändere' int toInt' zu 'long toInt' ... @SvetanDimoff –

Verwandte Themen