将16进制的数按字符格式存储,转换为10进制数输出-C语言

来源:互联网 发布:压缩包密码破解 知乎 编辑:程序博客网 时间:2024/06/05 09:39

1、通过输入十六进制形式的字符转换为十进制数输出

#include <stdio.h>#include <stdlib.h>#include <string.h>int main1(){    int a,b;    scanf("%X%X", &a, &b);//输入两个值例如:A 8    printf("%5d%5d\n", a, b); //以十进制形式输出为 10 8    return 0;}


运行结果:



2、将十六进制形式的字符组成的字符串分别输出为十进制数的形式

#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){    //char ptr[10] = {'A','B','C','D','E','8','1'};    char ptr[10] = "ABCDE81";    int n1,n2,n3,n4,n5,n6,n7;    int i = 0;    int n[7];    sscanf((const char*)ptr,"%1X%1X%1X%1X%1X%1X%1X", &n1, &n2, &n3, &n4, &n5, &n6, &n7);    printf("%5d%5d%5d%5d%5d%5d%5d\n", n1, n2, n3, n4, n5, n6, n7);    sscanf((const char*)ptr,"%1X%1X%1X%1X%1X%1X%1X", n, n+1, n+2, n+3, n+4, n+5, n+6);//将ptr按照每个字符为%X的格式赋值到数组n[i]中    for(i=0;i<7;i++)    {        printf("%4d",n[i]);    }    putchar('\n');        return 0;}
运行结果:


3、将十六进制形式的字符组成的字符串分别输出为十进制数的形式(只限A,B,C,D,E)

#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){    char ptr[10] = "ABCDE81";    int n[7];    int i = 0;    int j = 0;    for(i=0;i<7;i++)    {        j = ptr[i] - 'A';        if(j>=0)        {            n[i] = ptr[i]-('A'-0x0A);//ptr[i]-n[i] = 'A'-0x0A由这个方程而来,求n[i]        }        else        {            n[i] = ptr[i]-('0'-0x00);        }    }    for(i=0;i<7;i++)    {        printf("%5d", n[i]);    }    putchar('\n');    return 0;}


运行结果:


阅读全文
0 0
原创粉丝点击