1.1变量和数据结构
变量:内存空间的别名
变量名:字母 _ $开始,后面跟字母 数字 _ $
不能定义保留的关键字
这是什么?是函数指针类型的别名
数据类型
致命问题
小数点(固定/浮动)
这就是浮动(科学计数法)
1111 1111 2的-1加到2的-8次方
0000 0001 2的-8次方
1.2进制转换
二进制转16进制 四位一转
转8进制 3位一转
1.3原码补码反码
正数 三码合一
负数
反码 符号位不变 其他按位取反
补码 反码+1
小例子:取-25的补码
原码 1001 1001
反码 1110 0110
补码 1110 0111
也可以是 25的补码取反+1
取反 1110 0110
+1 1110 0111
1.4大小端存储
0x0098
大端 00 98 小端 98 00
巧妙小例题
答案 :
利用了大小端存1 第一个字节不一样的特性
1.5类型转换
判断结果
小类型向大类型转换 大类型向小类型转换(发生截断)
保持原值 保留低位 比如b=128 0000 1000 0000 0000
截断 0000 1000 得-128
1.6 scanf printf
为什么要传地址?(值传递,地址传递)
因为传地址才能改变那个值
这种输入 会被空格截断 要带空格的可以gets()
scanf有特殊返回值
printf
1.7位运算
无符号类型 右移一定补0
有符号类型 符号位为1 补1 符号位为0 补0
一个题目
考点:运算符顺序
先算==再位与