十进制数转换成R进制数,R属于(1,36)
来源:互联网 发布:2016网络大电影票房 编辑:程序博客网 时间:2024/06/06 18:20
/**************************************************************************************** File Name : jinzhizhuanhua.cpp ** Created by (Author, Date ) : Renzhibo 2012/3/21 ** ** Description : 十进制转换成R进制; **1<R<36 **注意 考虑 负数 **Modified Details (Modified Date/Modifier/ Modified Reason): ** 1: ** 2: ****************************************************************************************/#include <fstream>#include <iostream>#include <stack> // STL中的栈 类using namespace std;const int R_SYSTEM = 5;const char ALL_DIGIT[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9','A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T','U', 'V', 'W', 'X', 'Y', 'Z'};stack<char> g_cStack; // 栈 容器int ChangdecimalsystemtoRsystem(int iDecimal_number, int iRsystem);int GetIndex(char cChar);char GetChar(int iIndex);void PrintStack();int main(){char cContinue = 'y';while ('y' == cContinue || 'Y' == cContinue){//接收 输入的 十进制 数cout << "Please input a Decimal Number:";int iInDecimalNumber = 0;cin >> iInDecimalNumber;// 同步 输入缓冲区cin.sync();//接收 输入的 R进制cout << "Please input a system:";int iInRsystem = 0;cin >> iInRsystem;// 回显 用户 输入的 十进制数cout << "You input the number is:" << iInDecimalNumber << endl << "(if the number is not you input, maybe you didn't input a Decimal number)" << endl;if ( 0 != ChangdecimalsystemtoRsystem(iInDecimalNumber, iInRsystem)){cout << endl << "The " << iInRsystem << " system is wrong" << endl;}else{cout << endl << "The number( " << iInDecimalNumber << " ), " << iInRsystem << "'s system" << " result is :" << endl; PrintStack(); // 输出}//同步 输入 流cin.sync();cout << "Continue(Y/y),other keys quit!" << endl;cContinue = getchar();}return 0;}/******************************************************************************* Function Name : ChangdecimalsystemtoRsystem ** Description : 转换 十进制 到 Rsystem 进制 ** Date : 2012/3/21 ** Parameter : iDecimal_number: 十进制数 ** iRsystem : 表示1~36 之间 的 进制 * * Return Code : -1 表示 出错 ** Author : Renzhibo *******************************************************************************/int ChangdecimalsystemtoRsystem(int iDecimal_number, int iRsystem){int iReturnvalue = 0;if ( iRsystem > 1 && iRsystem < 36) // 判断 iRsystem 进制 是否 在 1 ~ 36 之间{bool bIs_positive_number = true; // 标示 是否 是整数if (iDecimal_number < 0){iDecimal_number = -iDecimal_number; // 将 负数 改成 正数bIs_positive_number = false;}int iTemp;char iTempChar;while (0 != iDecimal_number){//cout << iDecimal_number % iRsystem << endl;iTemp = iDecimal_number % iRsystem;iDecimal_number /= iRsystem;// 将指定 字符 入栈iTempChar = GetChar(iTemp);g_cStack.push(iTempChar);}// 如果是 负数 将 - 压入栈if (!bIs_positive_number){g_cStack.push('-');}}else{iReturnvalue = -1;}return iReturnvalue;}/******************************************************************************* Function Name : GetIndex ** Description : 获得 指定 值 在常量数组中的下标值 ** Date : 2012/3/21 ** Parameter : cInchar ** Return Code : -1 false; ** Author : Renzhibo *******************************************************************************/int GetIndex(char cInchar){int iTemp = -1;if (cInchar > '0' && cInchar < '9'){iTemp =cInchar - 48;}else if (cInchar >= 'A' && cInchar <= 'Z'){iTemp =cInchar - 55;// 将 字母的 asci码 转换成 在数组中的下标 A 是 10}else{iTemp = -1;}return iTemp;}/******************************************************************************* Function Name : GetChar ** Description : 获得 指定 常量数组下标 的值 ** Date : 2012/3/21 ** Parameter : iIndex ** Return Code : -1 false; ** Author : Renzhibo *******************************************************************************/char GetChar(int iIndex){int iTemp = -1;if (iIndex >= 0 && iIndex <= 9) // 又一次 忘记 了 等号, 记得要 边界值 注意啊。{iTemp =iIndex + 48;}else if (iIndex >= 10 && iIndex <= 35){iTemp =iIndex + 55;}else{iTemp = -1;}return iTemp;}/******************************************************************************* Function Name : PrintStack ** Description : 输出 栈 中的 值 ** Date : 2012/3/21 ** Parameter : 无 ** Return Code : 无 ** Author : Renzhibo *******************************************************************************/void PrintStack(){while (!g_cStack.empty()){cout << g_cStack.top() << " ";g_cStack.pop();}cout << endl;return;}
- 十进制数转换成R进制数,R属于(1,36)
- 输入一个十进制数N,将它转换成R进制数输出(运用递归实现)
- 将任意的十进制整数转换成任意R进制数(R在2-16之间)
- 十进制转换为R进制
- Oracle函数,把十进制color转换成 R,G,B
- 将十进制数N转换为r进制的数
- 经典c程序(0023)---十进制转R进制(1<R<=16)
- 把十进制的n转化成r进制的数的模板
- 怎样用C语言实现一个十进制数向R进制变换并输出(数据结构)
- ACM-任意的十进制数转成R进制
- 十进制数转换成N进制数
- n进制数转换成十进制数
- 十进制数转换成任意进制数
- <iOS>十进制数转换成其他进制数
- 十进制数转换成其他进制数
- 十进制数转换其他进制数
- 十进制转换成二进制数
- 十进制数转换成十六进制
- iOS: bundle name, bundle display name, bundle identifier...
- dos命令新建文件
- ARM Trustzone
- proftpd安装
- WebService的物理路径与设置的不一样
- 十进制数转换成R进制数,R属于(1,36)
- 折腾wxwidgets,wxIE成功
- ajax实现(javascript以及jquery)
- iOS AvPlayer AvAudioPlayer音频的后台播放问题
- 油价“破八”抑制中低端车消费
- GIF(genomic inflation factor)值的计算方法
- Android中Bitmap和Drawable
- linux ,apt不能获取的解决方法
- Android中设置全屏和屏幕常亮方法