题目描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
方法1:
优秀,又学习到了,太简洁了
int s;//注意是int while(cin>>hex>>s){ cout<<s<<endl; }
补充:
hex是16进制,oct是8进制,dec是10进制
反向同样成立:cout<<hex<<170; 输出aa
方法2:
中规中矩
#include<iostream> using namespace std; int str2num(char c){ //单另函数,字符转换成对应的数字 if(c>='A'&&c<='F')//注意0-9和A-F的ascii不是连着的 要分开写 return c-'A'+10; else if(c>='0'&&c<='9') return c-'0'; else return 0; } int main(){ string s; while(cin>>s){ int ans=0,k=1; for(int i=s.length()-1;i>=2;i--){ ans+=str2num(s[i])*k; k*=16; } cout<<ans<<endl; } return 0; }