如何使用C#查找两个二进制数的乘积?

要查找两个二进制数的乘积,请先设置它们。

val1 = 11100;

val2 = 10001;

Console.WriteLine("Binary one: "+val1);

Console.WriteLine("Binary two: "+val2);

现在循环获取产品。

while (val2 != 0) {

   digit = val2 % 10;

   if (digit == 1) {

      val1 = val1 * factor;

      prod = displayMul(val1, prod);

   } else

   val1 = val1 * factor;

   val2 = val2 / 10;

   factor = 10;

}

Console.WriteLine("Product = {0}", prod);

上面的方法displayMul()用第一个二进制数调用。

static long displayMul (long val1, long val2) {

   long i = 0, rem = 0, mul = 0;

   long[] sum = new long[30];

   while (val1 != 0 || val2 != 0) {

      sum[i++] =(val1 % 10 + val2 % 10 + rem) % 2;

      rem =(val1 % 10 + val2 % 10 + rem) / 2;

      val1 = val1 / 10;

      val2 = val2 / 10;

   }

   if (rem != 0)

   sum[i++] = rem;

   i = i-1;;

   while (i >= 0)

   mul = mul * 10 + sum[i--];

   return mul;

}

这是完整的代码-

示例

using System;

class Demo {

   public static void Main(string[] args) {

      long val1, val2, prod = 0;

      long digit, factor = 1;

      val1 = 11100;

      val2 = 10001;

      Console.WriteLine("Binary one: "+val1);

      Console.WriteLine("Binary two: "+val2);

      while (val2 != 0) {

         digit = val2 % 10;

         if (digit == 1) {

            val1 = val1 * factor;

            prod = displayMul(val1, prod);

         } else

         val1 = val1 * factor;

         val2 = val2 / 10;

         factor = 10;

      }

      Console.WriteLine("Product = {0}", prod);

   }

   static long displayMul (long val1, long val2) {

      long i = 0, rem = 0, mul = 0;

      long[] sum = new long[30];

      while (val1 != 0 || val2 != 0) {

         sum[i++] =(val1 % 10 + val2 % 10 + rem) % 2;

         rem =(val1 % 10 + val2 % 10 + rem) / 2;

         val1 = val1 / 10;

         val2 = val2 / 10;

      }

      if (rem != 0)

      sum[i++] = rem;

      i = i-1;;

      while (i >= 0)

      mul = mul * 10 + sum[i--];

      return mul;

   }

}

输出结果

Binary one: 11100

Binary two: 10001

Product = 111011100

以上是 如何使用C#查找两个二进制数的乘积? 的全部内容, 来源链接: utcz.com/z/348879.html

回到顶部