您的位置:首页 > 其它

运算符、表达式、语句 (预习)

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 不能被赋值!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: