数据的存储1.

类型的基本归类
内置类型
整形
char unsigned char ,signed char
short unsigned short[int] , signed short[int]
int unsigned int , signed int
long unsigned long , signed long
浮点型
float
double
构造类型:

数组类型,

结构体类型【struct】,

枚举类型【enum】,

联合类型【union】;

指针类型

int *pi;

char *pr;

空类型

void 通常应用于函数的返回类型,函数的参数指针类型;

void *pv;无具体类型的指针

原码,反码,补码

计算机中的有符号数的三种表示方法

三种表示方法均有符号位和数值位两个部分,符号位用0表示“正”,用1表示“负”,二数值位三种表示方法各不相同;

正数的原,反,补码相同;

对于整形来说:数据存放内存中其实存放的是补码;

原因:

再计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理,同时,加法和减法也可以统一处理(CPU只有加法器),此外,原码与补码相互转换,其运算过程是相同的,不需要额外的硬件电路

int main()
{
    1-1;//1+(-1)
    
    //原码相加:
    //00000000000000000000000000000001
    //10000000000000000000000000000001
    //10000000000000000000000000000010
    
    //反码相加:
    //10000000000000000000000000000001
    //11111111111111111111111111111110
    //11111111111111111111111111111111
    
    //补码相加:
    //00000000000000000000000000000001
    //11111111111111111111111111111111
    //10000000000000000000000000000000
}
原码

直接将二进制按照正负的形式翻译成二进制就可以;

反码

将原码的符号位不变,其他位次依次按位取反得到;

补码

反码+1;

int main()
{
    int a=20;//4个字节-32bit,一个字节8bit
    //00000000000000000000000000010100-原码
    //00000000000000000000000000010100-反码
    //0000 0000 000000000000000000010100-补码
    //0X00000014十六进制位
    int b=-10;
    //00000000000000000000000000001010-原码
    //11111111111111111111111111110101-反码
    //1111 1111 11111111111111111111 0110-补码
    //8421 
    //0XFFFFFFF6
    return 0;
}

整数:

1.有符号数

正数:原码,反码,补码相同

负数:原码,反码,补码不同,要进行计算

2.无符号数

原码,反码,补码相同

大端,小端

【大小端字节序存储模式】

大端(存储)模式,数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中

小端(存储)模式,数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中

c语言头文件:

1.#include<stdlib.h>使用:

stdlib.h里面定义了物种类型,一些宏和通用工具函数。在使用该类型,宏和通用工具函数时需要用stdlib.h头文件。

类型:

size_t, wchar_t, div_t, ldiv_t, lldiv_t;

宏:

EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, MB_CUR_MAX等等;

常用的函数:

malloc(), calloc(), realloc(), free(), system(), atoi(), atol(), rand(), srand() 等等;