C语言学习笔记(数据的储存1)

126 阅读2分钟

​「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」。

数据类型的介绍

C语言类型:

1.内置类型

char

short

int

long

double

float

2.自定义类型(构造类型)

类型的意义:

1.使用这个类型开辟内存空间的大小(大小决定了使用范围)

2.如何看待内存空间的视角

int main()
{
	int a = 10;
	float f = 10.0;

	return 0;
}

存储方式不一样,内存不一样

类型的基本归类

1. 整形家族

char(字符类型): 

        unsighed char

        signed char

short:

         unsighed short

         signed  short

int :

         unsighed int

         signed  int

long:

         unsighed long

         signed long

2.浮点型家族

float  单精度浮点型

double 双精度浮点型

构造类型

1.数组类型

2.结构体类型 struct

3.枚举类型 enum

4.联合类型 union

指针类型

int *pi;

char *pc;

float *pf;

void* pv;

void类型:空类型:

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

void test(void)
{
	printf("hehe\n");
}
int main()
{
	test(100);
	return 0;
}

整形在内存中的储存

先来了解一下这些概念:

原码、反码、补码

三种表示方法均有符号数(整型)和数值位两部分,符号位都是用0表示”正“,用1表示”负“,而数值位三种表示方法各不相同。

(无符号数原码、反码、补码相同)

计算规则:

原码:直接将二进制按照正负数的形式翻译成二进制就行。

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

补码:反码+1

int main()
{
	int a = 20;//4个字节-32bit
	//00000000000000000000000000010100 - 原码
	//00000000000000000000000000010100 - 反码
	//00000000000000000000000000010100 - 补码
    //0x00000014 - 16进制
	int b = -10;
	//10000000000000000000000000001010 - 原码
	//01111111111111111111111111110101 - 反码
	//1111 1111 1111 1111 1111 1111 1111 0110 - 补码
    //FFFFFFF6 -  16进制
	return 0;
}

正数原码、反码、补码完全相同

对于整型来说数据存放内存中其实存放的是补码。

在计算机系统中,数值一律用补码来表示和存储

sum:

整数:

1.有符号数:

正数原码、反码、补码相同

负数原码、反码、补码不相同

2.无符号数:

原码、反码、补码相同

大小端介绍

什么是大小端?

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

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

例:11 22 33 44 - 大端

        44 33 22 11 - 小端