1
In this web i see that all answer about thins like converting decimal number to     binary
its refers number without point in the number(int)...
i want to know how to convert the decimal number with point like "332.434" to binary in c#

私が見る例:


using System;

namespace _01.Decimal_to_Binary
{
    class DecimalToBinary
    {
        static void Main(string[] args)
        {
            Console.Write("Decimal: ");
            int decimalNumber = int.Parse(Console.ReadLine());

            int remainder;
            string result = string.Empty;
            while (decimalNumber > 0)
            {
                remainder = decimalNumber % 2;
                decimalNumber /= 2;
                result = remainder.ToString() + result;
            }
            Console.WriteLine("Binary:  {0}",result);
        }
    }
}

例は、ポイントなしで int から変換することを参照します

感謝

4

2 に答える 2

1

BitConverterを使用してバイトを取得し、それらをループして文字列に変換し、現在のビット文字列を前の文字列に追加するだけです。

byte[] byteArray = BitConverter.GetBytes(MyDouble);
string ByteString = System.String.Empty;
for (int i = 0; i < byteArray.Length; i++)
    ByteString = Convert.ToString(byteArray[i], 2).PadLeft(8, '0');

正しい順序でビットを取得するには、いじくり回す必要があるかもしれませんが、BysteStringの左側に上位ビットがあると思います。これがそのToStringメソッドのMSDNページですhttp://msdn.microsoft.com/en-us/library/8s62fh68.aspx

于 2012-11-10T01:58:43.377 に答える
-1

非整数を単純にバイナリ形式に変換することはできません。たとえば、3.145926 の場合、コンピュータは符号 (+/-) と数値自体を保持しますが、常に先行ゼロ (0.3141596) と仮数 (E-1) を使用します。したがって、3 つの部分をすべて保持する必要があります。ウィキペディアで詳細を読むhttp://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding

于 2012-11-10T02:16:30.160 に答える