进制转换demo

来源:互联网 发布:淘宝情趣内衣模特大全 编辑:程序博客网 时间:2024/06/08 06:00
#include "stdafx.h"#include<iostream>#include<cmath>#include<cstring>#include<string>using namespace std;typedef struct{int *top;int *base;int Lsize;}zhan;void push(zhan &z, int x){*z.top++ = x;}bool empty(zhan &z){if (z.top == z.base){return 0;}else{return 1;}}int pop(zhan &z){if (z.top == z.base){return -1;}else{*z.top--;return *z.top;}}int main(){string flag2, flag8, flag10;char a[22] = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' };int str, n;while (true){cout << "请输入你要转换的数字" << endl;cin >> str;cout << "请选择是否输出二进制(Y/N)" << endl;cin >> flag2;cout << "请选择是否输出八进制(Y/N)" << endl;cin >> flag8;cout << "请选择是否输出十六进制(Y/N)" << endl;cin >> flag10;if (flag2 == "Y"||flag2=="y"){n = str;zhan z;z.base = (int *)malloc(1010 * sizeof(int));z.top = z.base;while (n){push(z, n % 2);n /= 2;}cout << "二进制转化如下:" << endl;while (empty(z)){int k = pop(z);if (k != -1){cout << a[k];}}cout << endl;}if (flag8 == "Y"||flag8=="y"){n = str;zhan z;z.base = (int *)malloc(1010 * sizeof(int));z.top = z.base;while (n){push(z, n % 8);n /= 8;}cout << "八进制转化如下:" << endl;while (empty(z)){int k = pop(z);if (k != -1){cout << a[k];}}cout << endl;}if (flag10 == "Y"||flag10=="y"){n = str;zhan z;z.base = (int *)malloc(1010 * sizeof(int));z.top = z.base;cout << "十六进制转化如下:" << endl;while (n){push(z, n % 16);n /= 16;}while (empty(z)){int k = pop(z);if (k != -1){cout << a[k];}}cout << endl;}cout << endl;}    return 0;}

0 0
原创粉丝点击