C++进制转换问题
寫一個把10進制整數轉化為16進制,10進制,8進制字符串的函數函數原形如下: void int_to_str(intvalue,char *buff,int flag);value 為整數變量,buff 為字符串指針,flag 用來表
示8,10,16進制。
具體實現代碼如下:
/************************************************************* 寫一個把10進制整數轉化為16進制,10進制,8進制字符串的函數。 函數原形如下:void int_to_str(int value,char *buff,int flag); value為整數變量,buff為字符串指針,flag用來表示8,10,16進制 **************************************************************/ #include<stdio.h> #include<string.h> #include<iostream> using namespace std; #define size 100 void int_to_str(int value,char *buff,int flag); int main() {int num,c;char s[size]={0};cout<<"輸入一個整數:";while(cin>>num){cout<<"輸入轉換的進制:";cin>>c;while(c==8||c==10||c==16){strcpy(s,"0");int_to_str(num,s,c);return 0;}cout<<"進制無效!"<<endl;return 0;}cout<<"輸入值非法!"<<endl;return 0; }void int_to_str(int value,char *buff,int flag) {int r,i,j;char ch;char *p=buff;int temp = value;while(value){r = value % flag;value=value/flag;if(r<10){*(p++)=('0' + r);}else{*(p++)=('A'+ r -10);}}//兩個指針相減得到字符串的長度,包括\0i=p-buff;//交換字符串里的頭尾每一個數值的順序,得到正確結果for(j=0;j<(i+1)/2;j++){ch=*(buff+j);*(buff+j)=*(p-1-j);*(p-1-j)=ch;}cout<<temp<<"轉換為"<<flag<<"進制的結果是:"<<buff<<endl;return; }轉載于:https://www.cnblogs.com/raiven2008/p/4260877.html
總結
- 上一篇: response.setHeader()
- 下一篇: MVC开发插件汇总