16进制字符串转换成10进制数据
2010-10-30 11:04
1581 查看
//16进制字符串转换成10进制数据 #include "stdafx.h" #include <string.h> bool IsValidateStr16(const char *str); int StrToNumber16(const char *str); int Char16ToInt(char c); int main(int argc, char* argv[]) { int num; char str[] = "00Ff"; bool flag; flag = IsValidateStr16(str); if (true == flag) { printf("The str is ValidateStr16/n"); num = StrToNumber16(str); printf("The 10 numbers is:%d/n", num); } else printf("The str is not ValidateStr16/n"); return 0; } bool IsValidateStr16(const char *str) { int len,i; if (NULL == str) { return false; } len = strlen(str); for (i = 0; i < len; i++) { if (!((str[i] >= '0' && str[i] <= '9') || (str[i] >= 'A' && str[i] <= 'F')|| (str[i] >= 'a' && str[i] <= 'f'))) //满足条件之一0~9或者a~z或者A~Z都是合法的十六进制字符 return false; } return true; } int StrToNumber16(const char *str) { int len,i,num; num = 0;//使用数据必须初始化否则产生不确定值 len = strlen(str); for (i = 0; i < len; i++) { num = num*16 + Char16ToInt(str[i]);/*十六进制字符串与10进制的对应数据*/ } return num; } int Char16ToInt(char c) { int num; num = 0;// switch (c) { case '0': num = 0; break; case '1': num = 1; break; case '2': num = 2; break; case '3': num = 3; break; case '4': num = 4; break; case '5': num = 5; break; case '6': num = 6; break; case '7': num = 7; break; case '8': num = 8; break; case '9': num = 9; break; case 'a': case 'A': num = 10; break; case 'b': case 'B': num = 11; break; case 'c': case 'C': num = 12; break; case 'd': case 'D': num = 13; break; case 'e': case 'E': num = 14; break; case 'f': case 'F': num = 15; break; default: break; } return num; }
参考来源:http://www.cnblogs.com/k-eckel/articles/188523.html
相关文章推荐
- iOS 一个在UDP/TCP通信时,对16进制、10进制、NSData等数据之间的转换发送等处理的工具类库,一行代码将16进制字符串轻松转换成UDP需要的指令数据
- 超级(无限)大的 --- 整型10进制数据与16进制数据相互转换
- 16进制字符串转换成10进制数或把10进制数转换成16进制字符串
- 10进制数和16进制字符串 相互转换
- 二进制、10进制、16进制整数和字符串转换
- C# 数据16进制转10进制,richtextbox中查找字符串
- 16进制、10进制、字符串、中文、byte[]相互转换--->java版
- C/C++编程语言之进制转换16进制字符串转10进制字符串
- 16进制字符串转换成10进制数或把10进制数转换成16进制字符串
- android开发中遇到的进制转换,16进制数据流转和字符串的相互转换
- VC++中2进制,10进制,16进制相互转换
- C# 控制台输入输出非字符串类型数据的方法[进制数字转换为八进制数字]
- C++中字符串(16进制)转为10进制
- java中 8进制 10进制 2进制 16进制 相互转换
- iOS 开发 实现 将16进制字符串转换成16进制数
- oc 10进制数转16进制字符串
- LSN的10进制和16进制之间的转换
- 2,8,10,16进制.各种进制间的轻松转换(C#)
- java 10进制和16进制的相互转换
- 将16进制字符串转换成16进制数据