1. 10进制转2进制:
1)除2取余
2)幂相加并对照
2. 2进制转10进制:
1)幂相加
2)从低位开始一一对应,将1对应的数加起来
3. 2进制与8进制相互转换:
1)2转8:三位一体求和
2)8转2:每一位分解为3位2进制
4.2进制与16进制的相互转换:
1)2转16:四位一体求和
2)16转2:每一位分解为4位2进制
原码反码和补码:
5.原码:
先确定字节数,在确定最高位(0:正数,1:负数),其他位存储数值,例如:56和-56
1B:0011 1000
2B:0000 0000 0011 1000
1B:1011 1000
2B:1000 0000 0011 1000
原码和反码不能用于计算机存储数据的原因:会影响数据运算的结果 (1-1 = -2 1-1 = -127)
正数:原码,反码,补码三为一体
负数:原码,反码除符号位按位取反,补码在反码基础上+1
对负数补码再求补码可得到该负数源码的值
6.计算机存储的最小单位时字节B(byte),现在内存单元分配空间,再存储数据。
1Byte = 8bit。
1字母 = 1Byte
1汉子 = 2字母 = 2Byte
数据类型,常量,变量(标识(zhi)符)
7.基本数据类型:
1)整型:int 4B16位CPU为2B
2)短整型:short 2B
3)长整型:long4B64位CPU为8B
unsigned int/short/long:无符号整形/短整型/长整型
4)浮点型:float 4B 保留6-7位有效数字
double 8B 保留13-16位有效数字
5)字符型:char1B本质上是int ,以ASCII码形式存储
6)枚举:enum?
8.复合数据类型:
1)数组
2)结构体
3)共同体
4)指针
9.常量:
在程序执行过程中,其值不会发生改变。例:4
1)字符常量:用单引号括起来的一个字符,包括转义符。例:’a’
2)字符串常量:用双引号括起来的若干个字符。”asda”
3)整型常量
4)浮点型常量
10.变量:
是在内存中开辟一块空间,用来存储数据,数据随时可以改变。
变量的赋值:一个变量多次赋值,结果为最后一次赋的值。
思考:若想 int x = y = z = 3;则必须inty ,z(声明)
11.标识符命名规则:
1)可以标识变量名,包括字母,数字,下划线,不能以数字开头。
2)不能为关键字(保留字:有系统保留一些字符用于特殊用途的)。
3)严格区分大小写
4)见名知意
输入输出
12.输出格式控制符:
1)%d %ld:10进制整数
2)%o:8进制整数
3)%x:16进制整数
4)%c:字符型
5)%s:字符串
6)%f %15.2f
7)%u:无符号整数
13.scanf(“格式控制符”,&输入列表)注意:除了格式控制符和输入列表,其他的任何东西都不要加入。
思考:输入输出一个字符,再输入输出一个字符。现象:只能输入输出一个字符和空格
原因:字节流存储在缓冲区,相当于蓄水池,scanf接受缓冲区中的字符,如果缓冲区没有字符,scanf处于等待状态(阻塞)。
解决方法:getchar():输入一个字符
putchar():输出一个字符
gets():输入一个字符串
puts():输入一个字符串
14.算术运算符与算术表达式
1)* 乘
/ 除 注:除号两边都是整数时,结果为整型。只要有一边为小数,结果为小数
%取模 注:模两边只能为整型
2)自增,自减运算符
a++:先取变量中的值给表达式
++a:变量先+1,后给表达式
功能:无论加前取值还是加后取值,变量都会+1
3)关系表达式
< > >= <= != ==
输出结果:成立1 不成立0
4)逻辑运算符和逻辑表达式
!非 值:假0 一切非0的数据皆为真
&& 与 || 或
5)条件运算符(三元运算符,三目运算符)
表达式1?表达式2:表达式3
逻辑:先计算表达式中1的值,为真执行表达式2,否则执行表达式3
6)赋值运算符
简单赋值:= ,左边必须为变量,右边可以是变量,常量,表达式
复合算术赋值: +=,-=,*=,/=,%=
思考:int a = 5; a+=a-=a*=4-2;
7)逗号表达式
表达式1,表达式2,表达式3,表达式4.····表达式n
int a,b,c,d,e;
a=(b=2,c=3,d=4,e=5);
结果:a=5,b=2,c=3,d=4,e=5
8)优先级
! ++ - - * / % + -
> < >= <= == !=
&&||
?:
=
,
算术运算符>关系运算符>逻辑运算符>条件运算符 >赋值运算符>逗号运算符