我想知道数据类型是如何存储在c中的,所以我编写了一个程序来检查值的存储方式.当我看到输出时,我无法理解内存中不同数据类型的存储值.
这是我试过的程序,
#include <stdio.h>
int main() {
int x;
int valI, i;
short valS;
long valL;
signed valSi;
unsigned valUn;
// printf("enter a num");
// scanf("%d",&x);
x = -10;
valI = x;
valS = x;
valL = x;
valSi = x;
valUn = x;
printf("\n\t%i\t%li\n",valI,sizeof(valI));
for(i = 8*sizeof(valI); i >= 0 ; i--)
{
printf("%i",(valI & (1<<i))? 1 : 0);
}
printf("\n\t%i\t%li\n",valS,sizeof(valS));
for(i = 8*sizeof(valS); i >= 0 ; i--)
{
printf("%i",(valS & (1<<i))? 1 : 0);
}
printf("\n\t%li\t%li\n",valL,sizeof(valL));
for(i …Run Code Online (Sandbox Code Playgroud) c ×1