|
发表于 2023-11-9 15:38:21
|
显示全部楼层
- #include <iostream>
- using namespace std;
- int trans(char a[])
- {
- int b , c , f , i ;
- for(b = i = 0 , f = 1 ; a[i] && f ; i ++) {
- if(a[i] >= '0' && a[i] <= '9') c = a[i] - '0' ;
- else if(a[i] >= 'A' && a[i] <= 'F') c = a[i] - 'A' + 10 ;
- else if(a[i] >= 'a' && a[i] <= 'f') c = a[i] - 'a' + 10 ;
- else {
- cout << "输入中含有无效字符" << endl ;
- b = -1 ;
- f = 0 ;
- }
- if(f) b = b * 16 + c ;
- }
- return b ;
- }
- int main(void)
- {
- char a[256] ;
- cout<<"请输入一个十六进制数:" ;
- cin>>a ;
-
- cout<<trans(a)<<endl ;
-
- return 0 ;
-
- }
复制代码
编译、运行实况:
- D:\[exercise]\C>g++ -o x x.c
- D:\[exercise]\C>x
- 请输入一个十六进制数:200
- 512
- D:\[exercise]\C>x
- 请输入一个十六进制数:100
- 256
- D:\[exercise]\C>x
- 请输入一个十六进制数:400
- 1024
- D:\[exercise]\C>
复制代码 |
|