.NET 4.x Double в binary - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Нужно перевести число типа дабл в двоичный код. На консоли должно отобразиться так как это представлено в памяти ( с характеристикой , мантиссой). Представлено должно быть от младшего байта (с лева ) к старшему (на право). Вот сам перевод в двоичный, а дальше прошу помощи.
 public static string Result(double i)
        {
            Int64 temp = Convert.ToInt64(i);
            string result = Convert.ToString(temp, 2);
 
            if (result.Length < 64)
            {
                do
                    result = "0" + result;
                while (result.Length < 64);
            }
 
            return result;
            
        }

Решение задачи: «.NET 4.x Double в binary»

textual
Листинг программы
double doubl = 0.33d;
 
var raw = BitConverter.ToInt64(BitConverter.GetBytes(doubl), 0);
var sign64     = raw >> 63 & 0x01;
var exponent64 = raw >> 52 & 0x7FF;
var mantissa64 = (raw & 0x1FFFFFFFFFFFFF);
 
Console.WriteLine("Sign: {0}, Exponent: {1}, Mantissa: {2}",
    Convert.ToString(sign64, 2),
    Convert.ToString(exponent64, 2).PadLeft(11, '0'),
    Convert.ToString(mantissa64, 2).PadLeft(53, '0')
    );
    
var raw_str = Convert.ToString(raw, 2).PadLeft(64, '0');
 
Console.WriteLine("Sign: {0}, Exponent: {1}, Mantissa: {2}",
    raw_str.Substring(0, 1),
    raw_str.Substring(1, 11),
    raw_str.Substring(11)
    );
    
Console.WriteLine(raw_str);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5