簡體   English   中英

如何在C#中將帶點的十進制數轉換為二進制數?

[英]How i convert decimal number with point to binary number in c#?

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無點轉換

謝謝

只需使用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/zh-cn/library/8s62fh68.aspx

您不能簡單地將非整數轉換為二進制格式。 例如,對於3.145926,計算機保留一個符號(+/-),一個數字本身,但始終帶有前導零(0.3141596)和尾數(E-1)。 因此,您需要保留所有3個部分。 在Wikipedia中了解更多信息http://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM