一、 关键字
1.1、c语言的关键字共有32个
1.数据类型的关键字(12个)
char、short、int、long、float、double、unsigned、signed、struct、union、enum、void
2.控制语句关键字(12个)
if 、else、 switch、case、default、for、do 、while、break、continue、goto、return
3.存储类关键字
auto、extern、 register 、static、 const
4.其他关键字
sizeof、typedef、volatile
1.2、数据类型
数据类型的作用:编译器的预算对象(变量)分配的内存空间大小
1.2.1、数据类型的定义
变量的定义:
数据类型 变量名 【标识符】
变量的赋值:
方式一:变量名 = 值;
方式二:数据类型 变量名 【标识符】 = 值
常量的定义:
1.const 数据类型 常量名
2.【宏定义】#define 常量名 值
注意:
1.通过#define定义的常量是根据值来匹配数据类型的
2.const定义的常量是不安全 可以通过指针来修改
对应数据类型所有字符大小
int >> 4
float >> 4
char >> 1
double >> 8
short >> 2
long >> 4
二、进制
二进制:
二机制是计算机技术中广泛使用的一种数制。二级制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是:“逢二进一”,借位规则是“借一当二”。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。
注意:在程序中没办法表示一个二进制数
二进制:二进制逢二进一,所有的数组是0、1组成的
十进制:
十进制转二进制:除2反序取余法,将十进制数每次除以2 取出余数,按照结果倒序依次获取结果
二进制转十进制:权值法 , 将二进制各个位数从0开始,乘以2的N次方,将各个位数的结果相加
八进制:八进制逢八进一,所有的数是0到7组成的
十进制转八进制:除8反序取余法,将十进制数每次除以8取出余数,按照结果倒序依次获取结果
八进制转二进制:
进制在程序打印
//十进制数
int a = 10;
printf("%d\n",a);
//八进制数 加零
int a = 010;
printf("%d\n",a);
//十六进制数 加零X
int a = 0X10;
printf("%d\n",a);
三、原码、反码和补码
对于正数来说,它的原码、反码、补码是一致的
原码:一个数的原码(原始的二进制码)有如下特征:
1.最高位作为符号位,0表示正,为1表示负
2.其他数值部分就是数组本身绝对值的二进制数
3.负数的原码是在其绝对值的基础上,最高位变为1
原码表示法简单易懂,与带符号数本身转换方便,只要符号还原即可,但是当两个正数相减或不同符号数相加 时,必须比较两个数那个绝对值大,才能决定谁减谁, 才能确定结果是正还是负, 所以原码不便于加减运算
反码:
1.对于正数,反码与原码相同
2.对于负数,符号位不变,其它部分取反(1 变 0 ,0 变 1 )
反码运算也不方便,通常用作为求补码的中间过渡
补码:
1.对于正数、原码、反码、补码相同
2.对于负数,其补码为它的反码+1
3.补码符号位不动,其他位求反,最后整个数+1,得到原码
一个有符号的整型数据可以分为两部分,一部分是符号位,一部分是数字位。
signed int a = 10; (有符号位表示signed可以不用写)
溢出:在数据进行操作的时候会导致超出数据类型大小,会向前位进1,多于原始数据类型大小,会被系统自动舍弃,保留从后面开始数据类型大小的位数。