常见的进制数有2,8,10,16,等,但是如果是以-2,-8为进制怎么办呢
其实✨并不难
下面这个代码是以-2进制为例的代码,其他的正数进制或负数进制只要改-2即可
代*号的几行就是只有在负数进制中才会起作用的代码。可以当作一个模板(不可用于10进制以上的)
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, k, t;
cin >>n;
if(n==0) cout<<0;
else
{
vector <int> v;
while(n != 0)
{
k = n % -2;
n /= -2;
if(k < 0)//***************
{
k -= -2;//************
n++;//****************
}
v.push_back(k);
}
for(int i=v.size()-1; i>=0 ; i--)
cout<<v[i];
}
cout<<endl;
return 0;
}