Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        6个月前关闭。
                                                                                            
                
        
我需要进行这种转换,但是没有任何线索。有人能帮我吗?我需要它来完成基本转换的计算器。我还需要该函数返回一个整数以转换为在其他函数中使用。

PS:对不起,我的英语不好。

我希望11F为整数287。

最佳答案

这是递归的:

int hexToBase10(const std::string& number, size_t pos = 0) {
   if (pos == number.length())
       return 0;
   char digit = number[number.size() - pos - 1];
   int add = digit >= '0' && digit <= '9' ? digit - '0'
                                          : digit - 'A' + 10;
   return 16 * hexToBase10(number, pos + 1) + add;
}


这样称呼:

hexToBase10("11F");  // 287


顺便说一句,使用std::hex似乎更安全。

10-05 18:16
查看更多