进制转换原理
上图是十进制150转换为二进制的实例,实现方式是将150除以2取余,将余数记下,然后商继续除以2取余,重复该操作,直到商为0为止。
然后将得到的所有余数倒着连起来,就是二进制的值。
十进制转为八进制或十六进制都是一样的原理,只要将除数改为8或16即可。
实现
栈的实现请参考:https://blog.csdn.net/u010837612/article/details/79914935
#include <iostream>
#include <stdlib.h>
#include "MyStack.h"
using namespace std;
#define HEX 16 //16进制
#define OCTONARY 8 //8进制
#define BINARY 2 //2进制
int main(void) {
MyStack<char> *stack = new MyStack<char>(20);
char nums[] = "0123456789ABCDEF";
int N = 1234;
int mod;
int sys = HEX;
while (N != 0) {
mod = N % sys;
N = N / sys;
stack->push(nums[mod]);
}
cout << sys << "进制结果为:";
while (!stack->isEmpty()) {
char ele;
stack->pop(ele);
cout << ele;
}
cout << endl;
delete stack;
stack = NULL;
system("pause");
return 0;
}