问题:
十进制如何转换成二进制
十进制如何转换成八进制
十进制如何转换成十六进制
十进制数N和其他d进制数的转换的原理为N=(N div d)* d + N mod d*
比如十进制的数字10转换为二进制口算就知道是1010,那按照上面的公式
N N div 2 N mod 2
10 5 0
5 2 1
2 1 0
1 0 1
当N div 2 = 0时,则结束转换,最后转换出来的结果就是 N mod 2 那一列从后往前的数 1 0 1 0
代码如下
#include<cstdio>
#include<stack>
using namespace std;
int main()
{
stack <int> s;
int n;
scanf("%d",&n);
while(n)
{
s.push(n%2);
n/=2;
}
while(!s.empty())
{
printf("%d",s.top());
s.pop();
}
return 0;
}
同理,转换成八进制把2换成8即可,但是注意的是转换成十六进制,要用“ABCDEF”来代替“10,11,12,13,14,15”。