目录
vi常用指令
今天先接着昨天来讲讲vi编辑器的使用,主要继续总结一些指令。
nyyp复制粘贴n行
nyy+mp复制n行,粘贴m行
shift+v选中
dd删除
u撤销
ctrl+r反撤销
好了接下来就进入今天的正题了,进入C语言的世界
c语言基础
开始之前我们需要注意下面的
1.编程的思维(建立理解思考及解决问题的思维)
2.语法(排序,查找等烂熟于心)
3.指法(做到盲敲最好)
4.心态(谦虚,努力,多敲)
数据类型
什么是数据类型呢?数据类型有哪些呢?为什么要划分数据类型呢?什么是编程呢?
数据类型
在计算机编程中,数据类型是对数据的一种分类方式,它决定了数据在计算机内存中的存储方式、取值范围以及可以进行的操作。
常见的数据类型包括整数类型(如 int )、浮点数类型(如 float 、 double )、字符类型(如 char )、字符串类型(如 string )、布尔类型(如 bool )等。
例如,整数类型用于表示整数数值,其取值范围是有限定的;浮点数类型用于表示带有小数部分的数值;字符类型用于表示单个字符;字符串类型用于表示一串字符;布尔类型则只有两个值,即真(true)和假(false)。
划分数据类型主要有以下几个重要原因:
首先,数据类型有助于优化内存使用。不同的数据类型占用的存储空间不同,明确数据类型可以使计算机更有效地分配和管理内存,避免浪费存储空间。
其次,保证数据的准确性和一致性。通过指定数据类型,可以限制数据的取值范围和格式,从而确保数据的准确性和一致性。例如,定义一个整数类型的变量,就不会被错误地赋予小数或字符等不符合其类型的数据。
再者,数据类型决定了可以对数据进行的操作。不同的数据类型支持不同的运算和处理方式,例如整数可以进行加减乘除运算,而字符类型则更多地用于字符的比较和操作。
最后,有助于提高程序的可读性和可维护性。当其他开发者查看代码时,清晰的数据类型定义能够让他们更快地理解数据的用途和处理方式。
编程就是把人类的问题描述给计算机,让计算机来解决问题
整型
整型常量
1.10进制 123
2.8进制 0123
3.16进制0X123
进制转换是指将一个数从一种进制表示形式转换为另一种进制表示形式。
常见的进制有二进制(基数为 2,数字只有 0 和 1)、八进制(基数为 8,数字为 0 - 7)、十进制(基数为 10,数字为 0 - 9)和十六进制(基数为 16,数字为 0 - 9 以及 A - F 或 a - f 表示 10 - 15)。
以下是一些常见的进制转换方法:
十进制转二进制:可以使用除 2 取余的方法。将十进制数不断除以 2,取余数,直到商为 0,然后将余数从下往上排列,得到的就是二进制数。
十进制转八进制:采用除 8 取余的方式,原理与转二进制类似。
十进制转十六进制:除 16 取余,不过 10 - 15 用 A - F 表示。
二进制转十进制:按位权展开相加。例如二进制数 1010,转换为十进制就是:
八进制转十进制、十六进制转十进制也是按位权展开相加的方法。
整型类型
int 4 -2^31~(2^31-1)
unsigned int 4 0~(2^32-1)
short 2
unsigned short 2 0~65535
long 4
unsigned long 4
long long 8
unsigned long long 8
变量的定义
数据类型 变量名
整型数据的存储
大小端
在计算机领域,大小端(Endianness)是指计算机内存中多字节数据的存储和传输顺序。
大端模式(Big-Endian)是指数据的高位字节存储在低地址,低位字节存储在高地址。例如,对于一个 16 位的整数 0x1234,在大端模式下存储的顺序是 0x12 在前,0x34 在后。
小端模式(Little-Endian)则是数据的低位字节存储在低地址,高位字节存储在高地址。对于同样的 16 位整数 0x1234,在小端模式下存储的顺序是 0x34 在前,0x12 在后。
不同的计算机体系结构可能采用不同的端模式,这在网络通信、数据存储和程序移植等方面可能会引发一些问题,需要特别注意和处理。
数据的存储
存储的是补码
在 C 语言中,整型数据的存储方式取决于其类型和编译器的实现。
对于有符号整型(如 int ),通常使用二进制补码形式存储。最高位(最左边的位)被用作符号位,0 表示正数,1 表示负数。其余位表示数值的大小。
以 8 位有符号整数 char 为例,如果存储的是正数,直接用原码表示;如果是负数,则将其绝对值的原码按位取反,然后加 1 得到补码。
对于无符号整型(如 unsigned int ),所有位都用于表示数值,没有符号位。
不同的整型类型(如 short int 、 int 、 long int 等)在不同的编译器和机器上可能具有不同的字节长度和取值范围。
例如,在常见的 32 位系统中, int 通常占用 4 个字节(32 位),取值范围大约是 -2147483648 到 2147483647;而 short int 通常占用 2 个字节(16 位),取值范围较小。
在 64 位系统中, long int 可能会占用 8 个字节(64 位),从而具有更大的取值范围。
考点:
整数的溢出
整数的存储和溢出是分开进行的过程
浮点型
浮点型的常量形式
科学计数法
变量的定义
数据类型 变量名
float 单精度 4
double 双精度 --- 精度 8
long double 16
浮点型的存储
在 C 语言中,浮点型数据(如 float 和 double )通常按照 IEEE 754 标准进行存储。
对于单精度浮点型 float ,它通常占用 4 个字节(32 位)。这 32 位被划分为三个部分:
1. 符号位(1 位):0 表示正数,1 表示负数。
2. 指数位(8 位):用于表示指数的值。
3. 尾数位(23 位):用于表示小数部分的有效数字。
对于双精度浮点型 double ,通常占用 8 个字节(64 位)。其划分方式与 float 类似,但具有更高的精度和更大的指数范围:
1. 符号位(1 位)。
2. 指数位(11 位)。
3. 尾数位(52 位)。
具体的存储过程是,首先将浮点数转换为规范化的二进制科学计数法形式,然后根据指数和尾数的位数进行存储。
在存储指数时,采用偏移量的方式,以避免出现负数。对于 float ,偏移量为 127;对于 double ,偏移量为 1023 。
尾数部分则存储了小数点后面的有效数字,但实际上存储的是小数点前默认有一个 1 。
由于这种存储方式的限制,可能会导致一些精度损失和舍入误差。
考点
1.浮点的比较
保证精度类型一致
2.代码中出现的 变量 或 常量 一定有其对应的数据类型
3.代码中出现的 浮点型常量 默认识别为 double 类型
常量也可以指定类型:
0.9f //表示被识别为 float类型
123 //默认识别为 int类型
123L //识别为long类型
123LU //unsigned long
123LL //long long
123LLU //unsigned long long
字符型
字符型常量
'a'
字符型变量
char
char ch; //一个字节
char ch = 'a';
ch这个变量中 最终放的放的实际上是 'a' 对应的ascii码 值 (整型)
char 也叫做tiny int --小整型
char 也一种整型类型 说char和整型之间是通用的
unsigned char ch; //[0 ~ 255]
signed char a = 10; //[-128 ~ 127]
a = -10;
字符型应用
0~32 控制字符(不可见字符)
48~57 数字字符 '0' ~ '9'
65 ~90 英文的26个大写 字母的符号
97 ~122 英文的26个小写 字母的符号
相关学习内容推荐大家可以看看下面这篇文章写的非常详细。