gpt4 book ai didi

任何基数的 C++ 乘法

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:17:10 29 4
gpt4 key购买 nike

如何修改此代码以适用于任何基数? (二进制、十六进制、基数 10 等)

int mult(int a, int b, int base){

if((a<=base)||(b<=base)){ //only 1 digit
return a*b;
}
}

最佳答案

int 和所有数据类型一样,实际上是以二进制形式存储的。通常,如果您正在查看内存(例如调试器),它们会以十六进制表示。 intfloat 等类型仅由各种输出系统格式化为十进制。

由于数据本身是二进制的,因此乘法已经与基数无关。不是产品的展示。例如,假设我有一些 4 位类型:

0010 (2) X 0100 (4) = 1000 (8)

这正是 C++ 已经在工作的方式 - 仅使用 32 位或 64 位而不是 4 位。

因此,不需要函数以不同方式乘以不同的基数。您需要的是显示不同碱基的功能。幸运的是,C++ 对此有多种选择。一种是使用 STD 的流标志:

std::cout << std::oct << number << "\n";

然而,只有其中的 3 个:hexadecimal , decimal , 和 octal .有几个others , 但他们处理的不是基础。

如果您需要其他基础,我不知道有任何库提供此类基础。我搜索了 Boost 但没有找到它,但是 Boost 很大而且不太容易搜索,所以它可能。有一些other questionsStackOverflow您可以查看更广泛的用途。

关于任何基数的 C++ 乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31910747/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com