一、进制转换
-
R进制与十进制之间的转换
按位乘权相加,以小数点为分布,左从0开始,右从-1开始 -
十进制与R进制之间的转换
整数部分除R取余倒排,小数部分乘R取最高位正排 -
二、八、十六进制之间
三位合一位,四位合一位
二、信息存储
-
位(bit)
-
字节(Byte)
一字节等于八位 -
机器字长
参与运算的寄存器所含有的二进制的位数,代表机器的精度
三、二进制的编码表示
-
原码
整数:左边最高位0正1负
小数:小数点左边为符号位 -
反码:是求补码的中间码
正数:反码,补码一样
负数:符号位不变仍为1,其余位置各位取反
小数一样 -
补码
正数:本身
负数:求反加1,符号位参与运算 -
注:运算时全部以补码形式参与运算,符号位也参与运算,结果仍为补码,若最高位为0则正,直接转换,最高位为1,则为负,转换成反码再转源码,最后求解
四、程序开发的基本概念
- 源程序(源代码):编写的代码
- 目标程序(目标代码):翻译加工以后生成的程序
- 翻译程序
- 编译程序
- 解释程序
- 程序开发过程:编辑、编译、连接、运行调试
五、基本数据类型和表达式
-
基本数据类型
bool、char、short、int、long、float、double
signed、unsigned -
常量
整型、实型、字符型、字符串、布尔型 -
变量
声明与定义:类型与数值
存储类型:
auto:堆栈方式分配内存空间,暂时性存储,存储空间可被若干变量多次覆盖使用
register:存放在通用寄存器里
extern:在所有函数和程序段中都可以引用
static:固定地址存放 -
符号常量
#define
const 类型名 常量名 = 常量值;
例:const float PI = 3.1415926; -
逗号运算符
先计算表达式1的值,再计算表达式2的值,最终结果为表达式2的值 -
逻辑运算符
<、 >、 <=、>=、优先级高,==、!=优先级低,&&大于||
-
sizeof:sizeof(表达式),求类型所占空间数,并不对表达式求值
-
位运算(均为补码进行运算)
&:同一为一,其余为0
|:有1为1,没1为0
^:按位异或:相同为0,不同为1
~:按位取反:均取反
<<左移:高位舍去,低位补0
右移:低位舍去,高位补符号位 -
隐式转换和显示转换
隐式转换由低位转高位,char、short均转为int
显示转换:int(5.0)、(int)5.0、
const_cast(表达式)
dynamic_cast<>()
reinterrpret_cast<>()
static_cast<>()
注:强制类型转换只是临时把数值的类型转换,不改变原数值大小
六、自定义数据类型
- typedef:为类型取别名
- 枚举类型enum
enum 类型名(变量值列表)
枚举元素按常量处理,不能赋值,枚举元素有默认值,从0开始,也可以在声明时定义初值,后面值依次加1;整数值不能直接赋值给枚举变量,需要强制类型转换