将数字转换为C ++中的负基表示

在本教程中,我们将讨论将数字转换为负数基数表示形式的程序。

为此,我们将提供一个数字和相应的负数基数。我们的任务是将给定的数字转换为其负的基数。对于负基本值,我们仅允许使用介于-2和-10之间的值。

示例

#include <bits/stdc++.h>
using namespace std;
//将整数转换为字符串
string convert_str(int n){
   string str;
   stringstream ss;
   ss << n;
   ss >> str;
   return str;
}
//将n转换为负基
string convert_nb(int n, int negBase){
   //零的负基当量为零
   if (n == 0)
      return "0";
   string converted = "";
   while (n != 0){
      //从负数中减去余数
      int remainder = n % negBase;
      n /= negBase;
      //将余数更改为其绝对值
      if (remainder < 0) {
         remainder += (-negBase);
         n += 1;
      }
      //将余数转换为字符串,将其添加到结果中
      converted = convert_str(remainder) + converted;
   }
   return converted;
}
int main() {
   int n = 9;
   int negBase = -3;
   cout << convert_nb(n, negBase);
   return 0;
}

输出结果

100