运算符、表达式、语句 (预习)
2017-04-21 20:51
253 查看
位预算:
一般的位操作是用来控制硬件的,或者进行数据变换使用,灵活的位操作可以有效地提高运行的效率。
六种位运算符:
1、& 按位与
2、| 按位或
3、^ 按位异或
4、~ 取反
5、<< 左移
6、>> 右移、
按位与运算:
“&”是双目运算符,功能是曾参与运算的两个数字对应的二进制位相与。只有对应的两个二进位均为1时,结果才是1,否则为0
【注意】参与运算的数以补码方式出现
应用:
清0特定位(mask中特定位置0,其他位为1,s=s&mask)
取某数中指定位(mask中特定位置1,其他位0,s=s&mask)
按位或运算:
按位或运算符“|”是双目运算符。功能是参与运算的两个数字对应的二进制位相或。只有对应两个二进位有一个为1是,其结果为1。
【注意】参与运算的数以补码方式出现
应用:
常用来将原操作数某些位置1,其他位不变(mask中特定位置1,其他位0,s=s|mask)
按位异或运算:
“^”是双目运算符,其功能是参与运算的两个数字对应的二进制位相异或,当两对应的二进制位相异是结果为1
【注意】参与运算的数以补码方式出现
应用:
使特定位的值取反(mask中特定位置1,其他位0,s=s^mask)
不引入第三变量,交换两个变量的值
(设 a=a1,b=b1)
a=a^b
b=a^b
a=a^b
我这里再用具体的数字来解释下
假设a=1010,b=0011
a=a^b a=1001 b=0011
b=a^b a=1001 b=1010
a=a^b a=0011 b=1010
这样就把a和b的值交换了,并且没有引入第三个变量
左移和右移:
左移运算符“<<”是双目运算符,其功能是把“<&l
9bcf
t;”左边的运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,地位补0
右移预算符“>>”是双目运算符,其功能是把“>>”左边的运算数的各二进制位全部右移若干位,由“>>”右边的数指定移动的位数。
【注意】对于有符号数,在右移时,符号位将随同时移动,当为正数时,最高位补0;为负数时,符号位为1,最高位补0还是1取决于编译系统的规定
用途:
1、消耗CPU时间,起到延时作用
2、为了程序的结构清楚,可读性好,以后扩充新功能方便。
布尔变量与零值比较:
设布尔变量名字为flag,它与零值比较的标准if语句为
if (flag) //表示flag为真
if (!flag) //表示flag为假
整形变量与零值比较:
【注意】应将整形变量用“==”或“!=”直接与0比较
设整形变量的名字为value,它与零值比较的标准if语句为
if (value == 0)
if (value != 0)
浮点变量与零值比较:
【注意】不可以将浮点变量用“==”或“!=”与任何数字比较,float 和 double 类型的变量都有精度制,所以用“>=”或“<=”的方式来比较
设浮点变量的名字为x
if((x>=-EPSINON)&&(X<=EPSINON))其中EPSINON是允许的误差(精度)
指针变量和零值的比较:
【注意】应当将指针变量用“==”或“!=”与NULL比较,指针变量的零值是“空”(记为NULL)
假设指针变量的名字是p,它与零值比较的标准if语句为
if (p == NULL) // p与NULL 显示比较,强调p是指针变量
if (p != NULL)
NULL 不能被赋值!!!
一般的位操作是用来控制硬件的,或者进行数据变换使用,灵活的位操作可以有效地提高运行的效率。
六种位运算符:
1、& 按位与
2、| 按位或
3、^ 按位异或
4、~ 取反
5、<< 左移
6、>> 右移、
按位与运算:
“&”是双目运算符,功能是曾参与运算的两个数字对应的二进制位相与。只有对应的两个二进位均为1时,结果才是1,否则为0
【注意】参与运算的数以补码方式出现
应用:
清0特定位(mask中特定位置0,其他位为1,s=s&mask)
取某数中指定位(mask中特定位置1,其他位0,s=s&mask)
按位或运算:
按位或运算符“|”是双目运算符。功能是参与运算的两个数字对应的二进制位相或。只有对应两个二进位有一个为1是,其结果为1。
【注意】参与运算的数以补码方式出现
应用:
常用来将原操作数某些位置1,其他位不变(mask中特定位置1,其他位0,s=s|mask)
按位异或运算:
“^”是双目运算符,其功能是参与运算的两个数字对应的二进制位相异或,当两对应的二进制位相异是结果为1
【注意】参与运算的数以补码方式出现
应用:
使特定位的值取反(mask中特定位置1,其他位0,s=s^mask)
不引入第三变量,交换两个变量的值
(设 a=a1,b=b1)
a=a^b
b=a^b
a=a^b
我这里再用具体的数字来解释下
假设a=1010,b=0011
a=a^b a=1001 b=0011
b=a^b a=1001 b=1010
a=a^b a=0011 b=1010
这样就把a和b的值交换了,并且没有引入第三个变量
左移和右移:
左移运算符“<<”是双目运算符,其功能是把“<&l
9bcf
t;”左边的运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,地位补0
右移预算符“>>”是双目运算符,其功能是把“>>”左边的运算数的各二进制位全部右移若干位,由“>>”右边的数指定移动的位数。
【注意】对于有符号数,在右移时,符号位将随同时移动,当为正数时,最高位补0;为负数时,符号位为1,最高位补0还是1取决于编译系统的规定
语句
空语句:只有分号“;”组成的语句用途:
1、消耗CPU时间,起到延时作用
2、为了程序的结构清楚,可读性好,以后扩充新功能方便。
布尔变量与零值比较:
设布尔变量名字为flag,它与零值比较的标准if语句为
if (flag) //表示flag为真
if (!flag) //表示flag为假
整形变量与零值比较:
【注意】应将整形变量用“==”或“!=”直接与0比较
设整形变量的名字为value,它与零值比较的标准if语句为
if (value == 0)
if (value != 0)
浮点变量与零值比较:
【注意】不可以将浮点变量用“==”或“!=”与任何数字比较,float 和 double 类型的变量都有精度制,所以用“>=”或“<=”的方式来比较
设浮点变量的名字为x
if((x>=-EPSINON)&&(X<=EPSINON))其中EPSINON是允许的误差(精度)
指针变量和零值的比较:
【注意】应当将指针变量用“==”或“!=”与NULL比较,指针变量的零值是“空”(记为NULL)
假设指针变量的名字是p,它与零值比较的标准if语句为
if (p == NULL) // p与NULL 显示比较,强调p是指针变量
if (p != NULL)
NULL 不能被赋值!!!
相关文章推荐
- C Primer Plus 第5章 运算符、表达式和语句 编程练习
- 《C#图解教程》读书笔记8-9章——表达式和运算符、语句
- C--运算符,表达式和语句实例
- 运算符表达式和语句
- (四)运算符、表达式和语句
- javascript学习(2)——[基础回顾]运算符、表达式、流程控制语句
- J2SE学习笔记之运算符、表达式与语句
- C Primer Plus 第5章 运算符、表达式和语句 5.2基本运算符
- C Primer Plus 第5章 运算符、表达式和语句 5.3 其他运算符
- C Primer Plus 第5章 运算符、表达式和语句 5.7 一个示例程序
- CSharp学习笔记之四 关键字、语句、表达式和运算符
- 第三章 运算符、表达式与语句
- 5.9 运算符、表达式和语句总结
- (二)运算符、表达式和语句
- 运算符,语句和表达式的有关程序
- java 第一天 运算符、表达式、语句
- C primer plus 第5章 运算符、表达式和语句 5.1循环简价
- java运算符表达式与语句
- 【学习笔记】JavaScript——变量、常量、保留字、运算符与表达式、语句
- 【JavaScript】(2)标识符与关键字\基本|引用数据类型 \变量 \运算符与表达式\流程控制语句