一、对于前一天vi/vim编辑器操作的补充
昨天学习了如何用vi/vim编辑器编写代码,知道了其三种模式,分别是命令模式(默认进入的就是该模式)、插入模式、底行模式。今天要补充几个命令模式下能用的快捷操作,这些快捷操作能帮助我们快速且高效的编辑代码。
- YY:就是连续按下两次Y键(大小写随意哈),就能复制光标这一行的代码,当然,可以先按下数字,然后再连续按下两次Y键,这样你就复制了从光标那行开始算的像对应的数的行数的代码(切记,光标那行开始算),3YY就是3行,依次类推。
- P:有了复制,当然就得有粘贴,按下P键,你就可以把你原先复制的代码粘贴到光标的下一行(这是光标的下一行,跟YY不一样了,要注意),当然你也可以再P键前加数字操作,代表你想粘贴多少份。
- DD:跟Windows鼠标操作图形化界面相比,还少一个剪切操作,DD可以起到这个作用,当然要搭配P键使用,如果只DD,不P,那就相当于删除了这行代码,有趣的是,它也可以配合数字使用,跟YY一样也是从光标所在行开始算的行数。
- shift + v :这个组合键就是选中光标所在行的内容,跟Windows鼠标操作的选中一模一样哈,不过你要是选多行要配合方向键使用,选中完按一下Y是复制,按一下D是剪切(删除),切记,按一下。
- U / ctrl + r :删错了代码,复制粘贴错了代码,很着急啊,这个时候U键的作用就起作用了,直接就是撤销上一次的操作,撤销错了怎么办呢,ctrl + r,撤销上一次撤销的操作,所以叫反撤销。
二、C语言基础篇之数据类型篇
C语言数据类型大致为:基本类型、构造类型、指针类型和空类型。
今天我们学习的主要是基本类型中的整型、浮点型和字符型。当然学习数据类型前,我们要知道程序中的数据分为常量和变量。常量,就是程序还在运行的过程中,不能被改变的量,与之相反,能改变的量叫变量,注意,一定指的是程序还在运行的时候。下面来了解整型、浮点型和字符型。
- 整型:
1.整型常量的表示方法:
1122 十进制数1122;
0666 八进制数666;
0xffff 十六进制数ffff。
2.整型变量的表示
int a;表示定义了一个名为a的整型变量,大小为4个字节。
short a;表示定义了一个名为a的短整型变量,大小为2个字节。
long a;表示定义了一个名为a的长整型变量,大小为8个字节。
long long a;表示定义了一个名为a的long long整型变量,大小为8个字节。
3.整型变量的存储:
变量之所以能被修改,就是因为再定义变量时,如int a为例,计算机就划出一块地盘出来,给了名字叫做a的这个变量,本质来说,a,只是为了标识一下这个地盘,这个地盘多大还取决于它的数据类型是什么,既然是地盘,往里装什么数字,它就是什么数字。
对于整数,计算机存储的数据都是它的补码,只是对于正整数而言,原码,反码,补码都是一样的,负数则不同,它得先求反码再求补码。
负数求反码规则:做高位为符号位,因为是负数,所以为1,符号位不变,其余位按位取反,0变1,1变0,就能得到它的反码。
补码则再反码的基础上加一。
如int类型,计算机采用小端存储方式,高位数据一定是放到地址编号高的地方,然后再依次往低地址放。简记为高高低低。
4.这几个类型的取值范围:(一个字节是八位二进制数表示)
int -2^31~2^31-1; unsigned int 0~2^32-1;
short -32768~32767; unsigned short 0~65535;
long -2^63~2^63-1; unsigned long 0~2^64-1;
long long 大小同 long;
5.整数的溢出:
unsigned short i = 65535;
i = i + 1;
printf("i = %hd",i);
此时的i在数学角度上应该为65536,但是无符号短整型最大为65535,再+1,要向前进位,本来为 1111 1111 1111 1111 ,进位后为0001 0000 0000 0000 0000 ,由于只能存下后16为,i的值又变成了0,这个现象就叫数据溢出,最大值再加一,变成最小值,称为向上溢出,最小值减一,变成最大值,称为向下溢出。存储和读取数据是两个过程,没有必然联系,所以读只读后16位,但内存中高位还在。
- 浮点型
1.常量表示:12.32;1.232e1
2.变量表示:float double long double
3.变量大小:float(4个字节) double(8个字节) long double(16个字节)
4.浮点数的存储,主要有以下步骤:
step1:十进制小数化为二进制小数表示,整数部分除2取余,小数部分乘2取整。
step2:将上面得到的二进制小数用科学计数法表示,记住底数是2。
step3:参照IEEE754标准填入数字,float类型最高位为符号位,然后接着8位指数位,
要加127(规定),剩下23位填小数部分,不够的在后面补0;
ps:double的指数位有11位,偏移量(就是规定要加上的数)为1023,52位尾数位。
5.浮点数的比较:
浮点数要比较的话精度要求要一致(就是float只能和float比,double和double比),常量默认为double类型。
- 字符型
字符型只有一个字节,char i = 'a'; i 里面存的就是a字符的ASCII码,可以将char类型理解成int类型,只是这个char的取值范围比较小。
三、今日总结
今天学习了基本数据类型中的整型,浮点型,字符型三种数据类型,比以往学C语言时更深层次了解了这些数据类型存储的方式方法,了解其中储存原理,能更好的理解为什么C语言中一定要有数据分类。