【发布时间】:2015-08-10 02:13:06
【问题描述】:
如何修改此代码以适用于任何基数? (二进制、十六进制、base 10 等)
int mult(int a, int b, int base){
if((a<=base)||(b<=base)){ //only 1 digit
return a*b;
}
}
【问题讨论】:
-
这已经适用于任何“基础”。整数本身没有特定的“基数”。 Base 仅在您转换为印刷表示或从印刷表示转换时进入它。
-
你确定吗?如果我的基数是基数 4,而 'a' 和 'b' 是 3,它将打印 9,这不是基数 4 中的数字
-
没错。问题不在于乘法,因为答案仍然是九。问题是当您打印结果时,您(可能)以 10 为底进行打印。您需要问的问题是如何将结果转换为以 4 为底的表示形式。
-
哦,有道理,感谢您的意见
-
您在寻找类似于en.wikipedia.org/wiki/Binary-coded_decimal(BCD)(二进制编码的十进制)的东西吗?它可以称为十进制编码的东西吗?在这种情况下,您的示例不太正确,因为它不能正确处理进位,例如八进制
3*3应该是11和 not9。
标签: c++ function multiplication base