在union C中打印int字节

在union C中打印int字节,c,integer,byte,union,C,Integer,Byte,Union,当数字255必须是255而不是-1时,如何打印int的f字节? 我可以看到,当我扫描128时,我的程序打印-128,但当我扫描127时,我的程序打印127。 我能做什么呢printf 128作为128 #include <stdio.h> union byte_set{ int x; char tab[4]; }; int main(){ union byte_set byte_set; printf(

当数字255必须是255而不是-1时,如何打印int的f字节? 我可以看到,当我扫描128时,我的程序打印-128,但当我扫描127时,我的程序打印127。 我能做什么呢printf 128作为128

    #include <stdio.h>
    union byte_set{
    int x;
    char tab[4];
    };
    int main(){
         union byte_set byte_set;
        printf("Podaj liczbe: ");
        if(scanf("%d", &byte_set.x) != 1)
        {
            printf("Incorrect input");
            return 1;
        }
        for(int i = 0; i < 4; i++)
        {
        printf("%02d ", *(byte_set.tab+i));
        }
        return 0;
     }
#包括
联合字节集{
int x;
字符标签[4];
};
int main(){
联合字节集字节集;
printf(“Podaj liczbe:”);
如果(scanf(“%d”,&byte_set.x)!=1)
{
printf(“输入错误”);
返回1;
}
对于(int i=0;i<4;i++)
{
printf(“%02d”,*(byte_set.tab+i));
}
返回0;
}

选项卡
字段的类型更改为
无符号字符
。然后它们将具有正确的值

union byte_set{
    int x;
    unsigned char tab[4];
};

对于
选项卡
,它似乎缺少一个
scanf