.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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д