进制转换
来源:互联网 发布:抓取数据的免费软件 编辑:程序博客网 时间:2024/05/15 18:12
二进制,八进制,十进制,十六进制之间的装换,C++
#include <iostream.h>#include <math.h>int main(int argc, char* argv[]){int choice;while(choice!=5){cout<<"请选择输入的进制:\n1、十进制\n2、二进制\n3、八进制\n4、十六进制\n5、退出"<<endl;cin>>choice;switch(choice){case 1:{cout<<"请输入十进制数:"<<endl;int m_digit,i,a,b; //要转换的十进制数,整数在内存中占四字节共32位cin>>m_digit;a=m_digit;b=m_digit;char bins[33]={0}; //保存转换后32个的二进制字符for(i=0; i<32; i++) // 从最低位开始,循环取出每一位(BIT:0或1)共32位。{bins[31-i]=(m_digit&1)+48; //m_digit&1:将整数与1相与,相当于取出最低位;m_digit = m_digit>>1; //加48是将对应的数字0-1变成ASCII字符'0'-'1',便于输出。 }cout<<"二进制为:"<<bins<<endl;char octal[12]={0};for(i=0; i<11; i++){octal[10-i]=(a&7)+48;a = a>>3;}cout<<"八进制为:"<<octal<<endl;char hex[9]={0};for(i=0; i<8; i++){if((b&15)<10){hex[7-i]=(b&15)+48;b = b>>4;}else{hex[7-i]=(b&15)+55; b = b>>4;}}cout<<"十六进制为:"<<hex<<endl;}break;case 2:{cout<<"请输入二进制数字"<<endl;int i,j,k,a=0,b; char str[32];cin>>str;for (i=0;str[i]!='\0';i=i+1);k=i; //位数for (j=0;j<i;j++,k--){a=a+(str[j]-48)*(int)pow(2,k-1);//二进制到十进制}cout<<"十进制为:"<<a<<endl;b=a;char octal[12]={0};for(i=0; i<11; i++){octal[10-i]=(a&7)+48;a = a>>3;}cout<<"八进制为:"<<octal<<endl;char hex[9]={0};for(i=0; i<8; i++){if((b&15)<10){hex[7-i]=(b&15)+48;b = b>>4;}else{hex[7-i]=(b&15)+55; b = b>>4;}}cout<<"十六进制为:"<<hex<<endl;}break;case 3:{cout<<"请输入八进制数字"<<endl;int i,j,k,a=0,b; char str[11];cin>>str;for (i=0;str[i]!='\0';i=i+1);k=i; //位数for (j=0;j<i;j++,k--){a=a+(str[j]-48)*(int)pow(8,k-1);//八进制到十进制的转换}cout<<"十进制为:"<<a<<endl;b=a;char bins[33]={0}; for(i=0; i<32; i++) {bins[31-i]=(a&1)+48; a = a>>1; }cout<<"二进制为:"<<bins<<endl;char hex[9]={0};for(i=0; i<8; i++){if((b&15)<10){hex[7-i]=(b&15)+48;b = b>>4;}else{hex[7-i]=(b&15)+55; b = b>>4;}}cout<<"十六进制为:"<<hex<<endl;}break;case 4:{cout<<"请输入十六进制数字"<<endl;int i,j,k,a=0,b; char str[8];cin>>str;for (i=0;str[i]!='\0';i=i+1);k=i; //位数for (j=0;j<i;j++,k--){if (str[j]<=57){a=a+(str[j]-48)*(int)pow(16,k-1);} else{a=a+(str[j]-55)*(int)pow(16,k-1);}}cout<<"十进制为:"<<a<<endl;b=a;char bins[33]={0}; for(i=0; i<32; i++) {bins[31-i]=(a&1)+48; a = a>>1; }cout<<"二进制为:"<<bins<<endl;char octal[12]={0};for(i=0; i<11; i++){octal[10-i]=(b&7)+48;b = b>>3;}cout<<"八进制为:"<<octal<<endl;}break;}}return 0;}
- 进制转换,类型转换
- 进制转换(进制转换)
- 进制转换-----十进制转换成二进制
- 进制的转换,八进制转换十六进制
- 进制转换,运算符,类型转换,
- 十进制转换2-9进制转换
- 进制转换
- 无限进制转换
- 进制转换
- 进制转换
- 进制转换
- 【整理】进制转换
- 进制转换
- 七、进制转换
- 进制转换
- 进制转换
- 进制转换
- NotesScript 进制转换
- 寂寞清秋怎敌寒
- 有网了!!!!!!!!!!!!!
- thinkphp中$think.get.tag系统模板变量乱码问题
- 5、按行读取文件中的内容,并输出长度最大的行
- 工作札记(一)
- 进制转换
- struts2 hibernate spring 所必需的包
- Redis SNAPSHOT的实现
- 实战android手机telnet、ftp登陆,权限修改
- 双向供给的教育,全面的战略眼光
- Date Difference
- Best Digital Signal Processing Books
- 缩进与对齐——正确地使用Tab和空格
- 浅谈Iterator的用处