如何使用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: 11100Binary two: 10001
Product = 111011100
以上是 如何使用C#查找两个二进制数的乘积? 的全部内容, 来源链接: utcz.com/z/348879.html