运算符、表达式、语句 (预习)
来源:互联网 发布:淘宝网客服电话是多少 编辑:程序博客网 时间:2024/05/24 06:40
位预算:
一般的位操作是用来控制硬件的,或者进行数据变换使用,灵活的位操作可以有效地提高运行的效率。
六种位运算符:
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=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的值交换了,并且没有引入第三个变量
左移和右移:
左移运算符“<<”是双目运算符,其功能是把“<<”左边的运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,地位补0
右移预算符“>>”是双目运算符,其功能是把“>>”左边的运算数的各二进制位全部右移若干位,由“>>”右边的数指定移动的位数。
【注意】对于有符号数,在右移时,符号位将随同时移动,当为正数时,最高位补0;为负数时,符号位为1,最高位补0还是1取决于编译系统的规定
语句
- 运算符、表达式、语句 (预习)
- 数据类型二 运算符、表达式(预习)
- 运算符、表达式、语句
- 运算符、表达式、语句
- 运算符,表达式,语句
- 运算符、表达式、语句
- 表达式、运算符、语句
- 3第三天预习(比较运算符 条件语句if else switch 逻辑运算符多 循环)
- (二)运算符、表达式和语句
- 运算符、表达式和语句(1)
- 运算符、表达式与语句(2)
- 运算符、表达式和语句
- 运算符、表达式和语句
- 运算符、表达式和语句
- 运算符、表达式和语句
- 运算符、表达式和语句
- 运算符、表达式和语句
- 运算符、表达式和语句
- 两个数判断大小(不能用 if, switch, ?, 和其他判断语句)
- 人月神话读后感 摘要
- ASP.NET Cookie的存储与读取
- 重装MySQL失败的终极解决办法!
- 关于Android Studio初学时遇到的小问题—ImageView
- 运算符、表达式、语句 (预习)
- Spring对JMS的支持
- 面试编程题1
- Django 后台添加含有中文时出现'ascii' codec can't encode characters in position 4-11: ordinal not in range(128)
- You need to use a Theme.AppCompat theme (or descendant) with this activity.
- 复数的运算(类和对象)(写的不正规 单纯应付机考)
- mysql的高并发测试验证
- 机器学习从入门到出家
- Uva.213 Message Decoding