如何用C语言编程该数组

img


如何用比较简洁的C语言程序实现图中所要求的数组呢,希望能够得到比较详细的代码答案

#include <stdio.h>
int main() {
    int data[2];
    int *p = data;
    scanf("%x",p);
    scanf("%x",p+1);
    int a = ((*p)<<8) + *(p+1);
    int b = (*(p+1)<<8) + *p;
    printf("%d,%d",a,b);
    return 0;
}

img

8位就是一个char大小,定义unsigned char a[2]就够用了,转换的时候用无符号转换。代码如下:

img

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    unsigned char a[2];
    unsigned char* p = a;
    unsigned short t1, t2;
    scanf("%x %x", &a[0], &a[1]);

    t1 = (*p) << 8;
    p++;
    t1 += (*p);


    
    t2 = (*p) << 8;
    p--;
    t2 += (*p);
    printf("%u %u", t1, t2);

    p = 0;
    return 0;

}

8位,就一个byte,你定义成Byte类型也行,int类型也行,定义成int的时候只有低8位是有效数据,高位是没有用的
输入按16进制输入,scanf里面的参数写%x就行了
剩下移位操作就是位运算吗
a[0]<<8|a[1]
a[1]<<8|a[0]
剩下按10进制输出,直接printf("%d")就行了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632