利用sprintf和sscanf实现十六进制和十进制之间的相互转换

#include <stdio.h>
 
int main()
{
    char s[100] = {0};
    sprintf(s, "%x", 15);
    printf("%s\n", s); // f
 
    char str[100] = "f";
    int i = 0;
    sscanf(str, "%x", &i);
    printf("%d\n", i); // 15
    
    return 0; 
}
再来看一个程序,加深印象:

#include <stdio.h>
#include <limits.h>
 
int main()
{
    char s[100] = {0};
    sprintf(s, "%x", INT_MAX);
    printf("%s\n", s); // 7fffffff
 
    char str[100] = "7fffffff";
    int i = 0;
    sscanf(str, "%x", &i);
    printf("%d\n", i); // 2147483647
    
    return 0; 
}

发布了31 篇原创文章 · 获赞 5 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/Pei_hua100/article/details/97390767