问题描述
- C语言中关于进制转化问题
-
请问如何用htoi函数将十六进制组成的字符串转化成十进制数(前面可能包含0X或0x)
解决方案
C语言 进制的转化
黑马程序员---C语言-进制问题
c语言的进制问题
解决方案二:
int htoi(const char *s)
{
if( !s )return 0;
if( *s == '0' )
{
s++;
if( *s == 'x' || *s == 'X' )s++;
}
int n = 0;
while( *s )
{
n <<= 4;
if( *s <= '9' )
n |= ( *s & 0xf );
else
n |= ( (*s & 0xf) + 9 );
s++;
}
return n;
}
解决方案三:
你自己写一个不就行了,每次读1个字节,16进制只有0~f,可以从字符串的头开始读取,比较好判断,遇到X就说明数据开始了,每次读1个字节,下次在读的时候
就把之前读出来的乘以16,最后读到字符串完,就得到你要的数了。
时间: 2024-09-19 09:24:25