linux学习笔记7.24

目录

一、vi进阶使用(命令界面中输入)

二、数据类型:

数据类型的定义:数据种类的划分。

c语言的数据类型:

常量有三种表示形式:

变量

语法:【关键词】 + 【标识符】 + 【赋值】

变量名(标识符):

变量名取名规范:1,由数字,字母,下划线组成

数据类型的大小:该数据类型所占字节数。

变量赋值:

数据的存储原理:

整数类型的取值范围:

数据的溢出情况讨论:

浮点型数据:

字符型:


一、vi进阶使用(命令界面中输入)

        复制:       yy        复制光标所在行

                          Nyy        复制从光标起的N行(n为整数)

        粘贴:       p        从光标所在行粘贴

                          Np        将粘贴的内容粘贴N次(N为整数)

        删除:       dd        删除光标所在行

                          Ndd        删除从光标起的N行

        剪切:      Ndd + p  将dd操作删除的行粘贴到光标所在位置(N为整数)

        撤销:      u        撤销上一次操作

        反撤销:        CTRL + t 

        选取:       shift + v + 上下方向键  可以选中多行(可配合删除,复制等指令使用。注意在选中情况下yy,dd等原按两次指令现只需按一次)

二、数据类型:

数据类型的定义:数据种类的划分。

c语言的数据类型:

基本数据类型:整形,浮点型,字符型

构造数据类型:指针型,空型

【补】:整形用cpu来进行运算,小数用gpu运算

同时也分为:

变量:在程序运行过程中不能改变的量。

常量:在程序运行过程中会改变的量。

常量有三种表示形式:

2进制:逢2进1.(由0和1组成)

8进制:逢8进1 (由0,1,2,3,4,5,6,7组成)

10进制:逢10进1(由1,2,3,4,5,6,7,8,9组成)

16进制:逢16进1(由1,2,3,4,5,6,7,8,9,a,b,c,d,e,f组成)

10进制转换M进制的方法:除M取余(M<10)

M进制转换10进制的方法:加权求和

10进制需转换成8进制或16进制时可用2进制做桥梁,将10进制化成2进制,若要化成8进制则从低位到高位3个为一组,将这组2进制数转化为10进制数再按位组合。若要化成16进制则低到高位4个为一组,化十进制再组合。

变量

语法:【关键词】 + 【标识符】 + 【赋值】

        eg: int a = 10;

例:整形变量关键词:(共有8种组合情况)

int ,short,long,longlong,unsigned,signed(其中unsigned和signed可用来修饰int和short)

变量名(标识符):

变量名取名规范:1,由数字,字母,下划线组成

                             2,数字不能作为开头

                             3,不能使用关键词作为变量名

                             4,不能把预处理命令和库函数名称作为变量名

数据类型的大小:该数据类型所占字节数。

int 4字节,short 2 字节,long 8字节,longlong 8字节

其中发可使用sizeof(所要计算字节的量)来计算所占空间大小,其中()内部可是常量,变量,数据类型关键词,表达式。

变量赋值:

eg:int a = 10;(包含初始化和赋值)

变量之所以能变是因为其代表的是一块可变内容的存储空间。

        内存空间的储存原理:内存被划分为一个一个块(字节),并为这些块由小到大编号(内存地址)。定义变量就是将一部分块指定来存储内容。(如x86体系)

        其中储存方式可以分为大端存储和小端存储。其中小端存储指的是将一串数据由高位到低位以地址编号从大到小的方式将数据存储到空间中。小端则相反(如xp等类)

数据的存储原理:

计算机存储数据是存储数据的补码。

其中正数的原码,补码,反码是相同的。负数的反码为除第一位符号位外所有位的数据取反。其补码为反码 + 1.(其中补码,反码,原码指的都是二进制码)。

将补码化为原码的方法:1.将原码化补码的方式逆用。2.在补码的基础上在取补码。

整数类型的取值范围:

int型        4字节        unsigned int  【0,2的32次方 - 1】

                                signed int【-2的31次方,2的31次方】

unsigned int最大值的推导原理:32个数全部取1的时候为最大,其可表示的最大数可简便计算为在原基础上+1 变成除最高位为1其余为0的二进制数(进一位后有33位数),因此原最大值可表示为2的32次方-1.

signed int最小值的推导原理:最高位取值是一个特殊情况1000 0000 0000 0000 0000 0000 0000 0000(最高位此时既是符号位也是数值位)

short型        2字节        unsigned short【0,2的16次方】

                                     signed short【-2的15次方,2的15次方 - 1】

注:一个字节为8为二进制数,即2位16进制数。

数据的溢出情况讨论:

如short int a = 65536;首先要明确赋值操作时一个数据处理过程,意指将右边的数以某一个数据类型存储。右边的数字时切实存在的,但是由于数据类型限制,65535是17位的数字(1 0000 0000 0000 0000),但短整型只能取16位(4字节),并结合数据在内存存储原理可知,此时短整型只取低16位(0000 0000 0000 0000)所以其实际被赋值为0。 

【内含的重要思想:每一个变量和常量都有其对应数据类型】

浮点型数据:

常量形式:1.23, 1.23e-4(相当于1.23 * 10的-4次方),1.23E-4(与小写e等价)

浮点型变量:

关键词有double        双精度        8字节        64位

                float        单精度        4字节        32位

                long double         16字节        128位

单精度浮点数的编码存储:

1.将浮点数分别将10进制的整数和小数部分化为2进制数。其中整数部分由除2取余的方式。小数部分则时乘2取整的方式来化。

2.将二进制使用科学计数法来表示,即将小数点放在最高位之后次高位之前。

3.使用IEE754标准来表示。

IEE754标准:

对于float型变量 (4字节,32位)其中将第一位作为符号位,第2位到第10位作为指数位,剩下的位数部分叫做尾数位。

【详细处理方法:由高位到低位,确定符号位取值,指数为则为将第一步化出的二进制数科学技术法表示后其中所乘2的指数 +127(偏移量)再转化为二进制数】,位数为由原数据小数位补齐,若小数位补齐后总共不足32位,则在低位补零直到32位补满。其得到的二进制数即为计算机储存的数据的具体形式。

浮点数的比较:

比较原则:保证数据类型一致。(精度一致)

代码中的常量和变量都有其对应的数据类型,如123默认为整数,1.6默认为double型。

我们可以使用再数字后加对应类型的字母来指定数据类型 。如0.9f (float)123L(long),123LL(longlong),123LU(unsigned long)

字符型:

在计算机中储存字符。(实现方式:由将字符通过特定的编码转化成特定的二进制数)

其中通常使用ascii码来表示字符(在Linux系统中可使用man ascii指令来查看编码对应的字符)

0~32是控制字符(不可见)

48~57是数字‘0’~‘9’

65~90 是大写字母

97~122是26个小写字母

字符型常量表示方式:使用单引号 ‘ 所要表示的字符 ’。

字符型变量:char 变量名 

其中 char ch = ‘1’;

其中‘1'其本质被计算机存储的10进制表示数为49.(从计算机存储原理方面理解’49‘和数字1是等价的)

大写字母转换小写字母方式:‘a’ + 32

小写转换大写则是:‘A’ - 32.

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值