C/C++: 十六进制转10进制源码 收藏
2010-04-22 12:02
1196 查看
C/C++: 十六进制转10进制源码
收藏
view plaincopy to clipboard
?
int
hex_char_value(
char
c)
{
if
(c >=
'0'
&& c <=
'9'
)
return
c -
'0'
;
else
if
(c >=
'a'
&& c <=
'f'
)
return
(c -
'a'
+ 10);
else
if
(c >=
'A'
&& c <=
'F'
)
return
(c -
'A'
+ 10);
assert(0);
return
0;
}
int
hex_to_decimal(
const
char
* szHex,
int
len)
{
int
result = 0;
for
(
int
i = 0; i < len; i++)
{
result += (int
)pow((
float
)16, (
int
)len-i-1) * hex_char_value(szHex[i]);
}
return
result;
}
int hex_char_value(char c) { if(c >= '0' && c <= '9') return c - '0'; else if(c >= 'a' && c <= 'f') return (c - 'a' + 10); else if(c >= 'A' && c <= 'F') return (c - 'A' + 10); assert(0); return 0; } int hex_to_decimal(const char* szHex, int len) { int result = 0; for(int i = 0; i < len; i++) { result += (int)pow((float)16, (int)len-i-1) * hex_char_value(szHex[i]); } return result; }
写完以上代码后,又突然想到可以用 sscanf() 实现同样的功能:
int x;
sscanf("abc", "%x", x);
//x = 2748
相关文章推荐
- C/C++: 十六进制转10进制源码
- C/C++: 十六进制转10进制源码
- C++十六进制字符串转10进制
- c++ bitset 10进制转二进制
- C++中字符串(16进制)转为10进制
- [收藏]C++ Tips(10)--宏的使用
- 华为研发笔试(十六进制转10进制)
- c++基础之2进制、10进制和16进制以及内存表示
- C++将10进制字符串转为16进制字符串
- C/C++编程语言之进制转换16进制字符串转10进制字符串
- 1715 Hexadecimal Numbers 给出十六进制系统,每一个16进制的数对应于一个10进制的数,16进制的数最长8位,然后按10进制从大到小排序。 首位不能为零。 给出n,要求第n大的16进制数。
- [收藏]C++ Tips(10)--宏的使用
- 十六进制转10进制
- c++之进制转换16进制-10进制
- [收藏]2进制、8进制、10进制、16进制...各种进制间的轻松转换(c#)
- 10进制转16进制,16进制转10进制,随机出一个6位十六进制颜色值
- C++以16进制输入10进制输出
- C++以16进制输入10进制输出
- 十六进制字符串转换成十进制整数的C++实现源代码
- C++ 蓝桥杯基础训练 10进制转16进制