using System.Collections.Generic;
static void Main(string[] args)
String input = Console.ReadLine();
String input2 = Console.ReadLine();
Console.WriteLine("result: " + MultiplyFloat((float)Convert.ToDouble(input), (float)Convert.ToDouble(input2)));
static string Add(string num1, string num2)
while (i >= 0 || j >= 0 || carry == 1)
sum = sum + Convert.ToInt32(num1[i] + "");
sum = sum + Convert.ToInt32(num2[j] + " ");
static float MultiplyFloat(float num1, float num2)
string binaryNum1 = GetNumbers(num1);
string binaryNum2 = GetNumbers(num2);
Console.WriteLine("Binary Num1: " + binaryNum1);
Console.WriteLine("Binary Num2: " + binaryNum2);
string op1 = binaryNum1.Replace(".", "");
string op2 = binaryNum2.Replace(".", "");
IList<string> list = new List<string>();
for (int i = op1.Length - 1; i >= 0; i--)
int num = Convert.ToInt32(op1[i] + "");
for (int j = op1.Length - 1; j > i; j--)
for (int j = op2.Length - 1; j >= 0; j--)
sum = Convert.ToInt32(op2[j] + "") * num + sum;
for (int i = 1; i < list.Count; i++)
result = Add(result, list[i]);
int pointIndex = (binaryNum1.Length - binaryNum1.IndexOf('.')) + (binaryNum2.Length - binaryNum2.IndexOf('.')) - 2;
Console.WriteLine("Binary result: " + result);
static float GetFloat(string binary)
string[] arr = binary.Split('.');
for (int i = arr[0].Length - 1; i >= 0; i--)
beforeDecimal = beforeDecimal + Convert.ToInt32(arr[0][i] + "") * (int)Math.Pow(2, count);
for (int i = 0; i < arr[1].Length; i++)
afterDecimal = afterDecimal + Convert.ToInt32(arr[1][i] + "") * (float)Math.Pow(2, count);
return beforeDecimal + afterDecimal;
static string GetNumbers(float number)
StringBuilder result = new StringBuilder();
int beforeDecimal = (int)number;
float afterDecimal = number - beforeDecimal;
while (beforeDecimal != 0)
result.Insert(0, beforeDecimal % 2);
while (afterDecimal != 0)
afterDecimal = afterDecimal - 1;
return result.ToString();