gpt4 book ai didi

c++ - 如何比较任意基数的数字

转载 作者:行者123 更新时间:2023-11-30 18:56:37 25 4
gpt4 key购买 nike

我一直在尝试比较任何基数 B 的两个数字无需先将它们转换为十进制。有办法做到吗?

我可以通过将它们转换为十进制来做到这一点。我就是这样做的(基于 17):

 for(i=strlen(s)-1;i>=0;i--)
{
if(s[i]>='A'&&s[i]<='G')
s[i]=s[i]-'A'+ 10;
else
s[i]=s[i]-'0';

int z=(int)s[i];

a+=z*pow(17,j);
j++;
}

最佳答案

数字按其进行比较。如果它们的表示法不同(就基数而言),则相同位置的数字意味着不同的含义。例如:

10 [10] > 1000 [2]
10 [10] < 10000 [2]

我想比较不同基数中的两个值的唯一方法是将它们转换为公共(public)基数然后进行比较。

对于给定号码 n由数字 d = d_k d_{k-1} ... d_1 d_0 组成在基地b ,您可以使用以下公式评估 number 的:

value = sum_{i=0}^{k} d_{i}*b^i

关于c++ - 如何比较任意基数的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990249/

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