int fun(char *s)
{
int n;
n = *s - '0'; // ASCALL码值相减,得到十进制数值
s++;
while (*s != '\0')
{
// n = n*8 + *s - '0';
n = (n << 3) | (*s - '0'); // 效率更高
s++;
}
return n;
}
本文介绍了一个C语言函数,该函数可以将一个表示八进制数的字符串转换为对应的整数值。通过位操作提高转换效率,并展示了如何逐字符处理字符串。
int fun(char *s)
{
int n;
n = *s - '0'; // ASCALL码值相减,得到十进制数值
s++;
while (*s != '\0')
{
// n = n*8 + *s - '0';
n = (n << 3) | (*s - '0'); // 效率更高
s++;
}
return n;
}

被折叠的 条评论
为什么被折叠?