想要在linux下实现更灵活高效的编程就必须了解vim的一些便捷操作:
vim编译场景下的复制、粘贴、删除、剪切等操作均在命令模式下进行。
复制????????4yy? ? ? ? //复制光标所在以及下行总共4行进行复制
粘贴????????p/4p? ? ? ? //粘贴操作? ? ?粘贴4行
删除????????dd? ? ? ? ? ?//删除光标所在的行
剪切????????dd?p? ? ? ? //剪切操作是删除和粘贴的组合
选中? ? ? ?shift? v? ???//按住方向键实现选择行,之后按y实现多行选择
? ? ? ? ? ? ? ctrl? v? ? ? ?//实现块选择
撤销? ? ? ? u? ? ? ? ? ? ?//返回至上一步操作
反撤销? ? ?ctrl r? ? ? ? //撤回撤销命令
注释代码其他方式
#if 0? ? ? ? //用的话将0改为1就可以#if 1
#endif
标识符的命名方式:数字、字母、下划线(不能是数字开头)
计算机中有许多数据类型,但是主要可以分为两类:int【整型】、float【浮点型】。char【字符型】可以认为是整型的一种其实质也是整型。
基于以上两种数据类型为了适用更多的应用场景,则对其进行了扩充:short、long、long long。
由运算符sizeof可以查看出各个数据类型所占的字节数。一个字节=8位(8比特)
计算机存储码数的规则是:补码为了便于进行减运算,即用加代替减。
大端模式、小端模式
大端模式和小端模式指的是计算机存储数据的方式。
大端模式将高位存储到低位寄存器中;小端模式将高位存储到高位寄存器中。
例如:寄存器地址分别为0x01\0x02。要存储一个数据1110 1111如果将1110存入0x02寄存器中,1111存入0x01寄存器中,这种存储方式则为小端模式(简记:高高低低)。
如果将1110存储至0x01,1111存储至0x02则为大端模式(简记:高低低高)。
int 类型
unsigned int? ? ? ? //2^(4*8)即存储范围在0 ~ 2^32-1(无符号具体后面介绍)
int? ? ? ? ? ? ? ? ? ? ? ?//默认为signed int 类型存储范围为-2^31 ~ 2^31-1
unsigned short? ? ? ? //?2^(2*8)存储范围在0 ~ 2^8-1
数据类型如果超过最大表示范围则会发生溢出。明确存储范围则可排除一些问题,例如:
举例程序:
unsigned short i = 0;
for (i = 0; i <= 65536; ++i)
{
printf("i = %d\n",i);
}
该程序永远处于循环当中无法结束程序,其原因在于short型所能表达的最大整数范围是65536-1;因此i的取值永远不会大于65536,无法跳出for循环当中。
float类型?
计算方式是将6.25化成二进制科学计数法1.1001 * 2^2
存储规则:符号位(1位) | 指数位(8位)+127 | 尾数(23位)
例如:6.25的存储方式为 0 / 100 0000 1/ 10?0 1000 0000 0000 0000 0000
double型的对float的扩充
int main()
{
float a = 0.9;
if(a == 0.9)
{printf("yes");}
else
{
printf("no");
}
printf("%f\n",a);
}
浮点数一般默认以双精度double形式存储,以上代码运行结果为NO的原因在于0.9与a的存储方式不同,计算机并不能存一个确定的0.9,只能是近似于。因此尾数越多则精度越高。
占位符
%d \ %ld 、 %ud | 十进制输出占位符 |
%o \ %#o | 八进制输出占位符 \ 输出带前缀0 12 |
%x \ %#x | 十六进制输出符 \ 输出前缀带0x |
%c | 输出字符型 |
总结:
vim编辑器
数据类型:int(short、long、long long)、float(double、long double)、char
计算机存储二进制数规则:补码(为了便于进行减运算)
数据类型的存储范围、溢出、存储方式
最后分享一个编程题:
将小写的hello转变为HELLO
问题: