C语言中的一些关键字(十二)
来源:互联网 发布:仙知机器人 冯源 编辑:程序博客网 时间:2024/06/15 17:51
位运算
3.按位异或──^
(1)格式:x^y
(2)规则:对应位相同时为0,不同时为1:3^9=10。
(3)主要用途:使1个数的某(些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变。
4.按位取反──~
(1)格式:~x
(2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6。
(3)主要用途:间接地构造一个数,以增强程序的可移植性。
5.按位左移──<<
(1)格式:x<< 位数
(2)规则:使操作数的各位左移,低位补0,高位溢出:5<<2=20。
6.按位右移──>>
(1)格式:x>>位数
(2)规则:使操作数的各位右移,移出的低位舍弃;高位:
1)对无符号数和有符号中的正数,补0;
2)有符号数中的负数,取决于所使用的系统:补0的称为“逻辑右移”,补1的称为“算术右移”。例如,20 >> 2=5。
说明:
(1)x、y和“位数”等操作数,都只能是整型或字符型数据。除按位取反为单目运算符外,其余均为双目运算符。
(2)参与运算时,操作数x和y,都必须首先转换成二进制形式,然后再执行相应的按位运算。
例如,5<<2=20:0101 → 10100,20 >> 2=5:10100 → 00101
(3)实现&、|、^运算主要用途的方法
1)构造1个整数:该数在要取(或保留)的位、或要置1的位、或要翻转的位上为1,其余均为0。
2)进行按位与、或按位或、或按位异或操作。
(4)实现按位取反主要用途的方法
1)求~0,间接地构造一个全1的数;
2)按需要进行左移或右移操作,构造出所需要的数。
例如,直接构造一个全1的数,在IBM-PC机中为0xffff(2字节),而在VAX-11/780上,却是0xffffffff(4字节)。如果用~0来构造,系统可以自动适应。
应用举例
[案例] 从键盘上输入1个正整数给int变量num,输出由8~11位构成的数(从低位、0号开始编号)。
- C语言中的一些关键字(十二)
- C语言中的一些关键字(一)
- C语言中的一些关键字(五)
- C语言中的一些关键字(七)
- C语言中的一些关键字(九)
- C语言中的一些关键字(十)
- C语言中的一些关键字(十一)
- C语言中的一些关键字(十三)
- C语言中的一些关键字(十四)
- C语言中的一些关键字
- C语言的一些关键字(二)
- C语言的一些关键字(三)
- C语言的一些关键字(四)
- C语言的一些关键字(八)
- C语言中的关键字
- C语言中的关键字
- C语言中的关键字
- C语言中的关键字
- java 定时器
- 大数据开发、架构工程师面试(一)
- Android嵌入Web页面及缓存的处理
- 求斐波那契数列的第n个数;1,1,2,3,5,8,13,21.....
- hdu 1241(dfs基础题)
- C语言中的一些关键字(十二)
- Android中Fragment的使用技巧
- 多态中虚函数的简单理解
- 1112
- java 用 for do...while 和 while循环求1到100之间的偶数和
- 排序算法总结
- acdream 1025 Transform 简单dp
- 简单时间轴
- jQuery实现放大镜效果