C进阶-数据的存储

数据类型介绍

内置类型:

//数据类型中的内置类型
// char //字符数据类型
// short //短整型
// int  //整型
// long //长整型
// long long //更长的整型
// float   //单精度浮点数
// double //双精度浮点数

C进阶-数据的存储_第1张图片

//数据类型中的内置类型   单位是字节
// char //字符数据类型  1
// short //短整型    2
// int  //整型    4
// long //长整型   4/8
// long long //更长的整型   8
// float   //单精度浮点数    4
// double //双精度浮点数     8


//整数数据的二进制表示形式有三种:原码,补码,反码
//三种方法的均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示负
//数值位正数的原、反、补码都相同
int main()
{
        //INT_MAX;
        int num = 10;//创建一个整型变量,叫num,这时num向内存申请4个字节来存放数据
        //4个字节-32比特位
        //00000000000000000000000000001010  原码
        //00000000000000000000000000001010  反码
        //00000000000000000000000000001010  补码
        int num1 = -10;
        //10000000000000000000000000001010  原码 
        //11111111111111111111111111110101  反码 
        //11111111111111111111111111110110  补码

    return 0;
}


//字符存储的时候存储的是ASCII码值,存储的是ASCII码值,是整型,所有归类的时候放在整型家族
//计算1-1 = 1+(-1)
//原码计算错误
//0000000000000000000000000000001
//1000000000000000000000000000001
//1000000000000000000000000000010

//补码计算
//0000000000000000000000000000001  1的补码
//1111111111111111111111111111111  -1的补码
//0000000000000000000000000000000 

字节序和大小端:

//1.字节序 - 是以字节为单位,讨论存储顺序的
//2.小端字节序存储:把一个数据的低位字节的内容,存放在低地址处,把一个数据的高位字节的内容,存放在高地址处
//大端字节序存储:把一个数据的低位字节的内容,存放在高地址处,把一个数据的高位字节的内容,存放在低地址处


// int main()
// {
//     int a = 0x11223344;
//     return 0;
// }

//写个程序,如何来判断大小端

//小端返回1
//大端返回0
int check_sys()
{
    int a = 1;
    // if(*(char*)&a ==1)
    // {
    //     return 1;
    // } else
    // {
    //     return 0;
    // }
    return *(char*)&a;
}

int main()
{
    int ret = check_sys();
    if(ret==1)
    {
        printf("小端\n");
    } else
    {
        printf("大端\n");
    }
    // int a = 1;
    // char* p = (char*)&a;//int*
    // if(*(char*)&a ==1)
    // //if(*p == 1)
    // {
    //     printf("小端\n");
    // } else
    // {
    //      printf("大端\n");
    // }

    return 0;
}

你可能感兴趣的:(c语言,开发语言)