想要输入指定进制数,只需要在cin后面加上指定进制即可,在算法题中有时候很有用。
int a,b;
cin >> hex >> a;
cin >> hex >> a >> oct >> b;
cout << a+b; //cout<<dec<<a+b; (默认是输出十进制,可省略)
-
bin:二进制
-
oct : 八进制
-
dec:十进制
-
hex :十六进制
C语言实现上述操作
int a,b;
scanf("%x %o",&a,&b);
printf("%d",a+b);
-
o : 八进制
-
d:十进制
-
x :十六进制
手动进制转换代码(指定进制转换成十进制)
int fun(string s,int n) //s是指定的 n 进制字符串
{
int a=0;
for(int i=0;i<s.size();i++)
{
char t=s[i];
if(t>='0'&&t<='9')
{
a=a*n + (t-'0');
}
else
{
a=a*n + (t-'a'+10);
}
}
return a;
}
手动进制转换代码(十进制转换成指定进制)
int a,x;
cin >> a >> x;
string s;
while(a) //十进制转换成x进制
{
s += (char)(a%x+'0');
a /= x;
}