c 语言位操作
2016-07-20 17:35
337 查看
位操作符:
1、位与 &
2、位或 |
3、位异或 ^
4、位取反 ~
5、左移位 << 右移位 >>
(3)从真值表可以看出:位或操作的特点是,只有0和0位或的结果是0,其余全是1.
(4)位或和逻辑或的区别:位或时两个操作数是按照二进制位彼此对应为相或的,逻辑或是两个操作数作为整体来相或的。
注意最后一条,有符号数,右移位左侧补符号位
4.2.2.5、举例:
(1)我们需要一个bit3~bit7为1(隐含意思就是其他位为0)的二进制数我们可以这样做:(0x1f << 3).
(2)更难的要求,获取bit3~bit7为1,同时bit23~bit25为1,其余位为0
(3)获取bit4~bit10为0,其余为1.
4.2.2.6、位运算实战演练:
(1)a | = (1 << 3);
(2)a |= (0x1f << 3);
(3)a &= (~(1 << 15));
(4)a &= (~(0x1ff<< 15));
(5)
(6)
要明白置1和赋值都是用位或。赋值之前要把原来的数清除。
(7)
(8)
//备注:第七题和第八题的0x3ff是误写,真实的是0x7ff.
1、位与 &
2、位或 |
3、位异或 ^
4、位取反 ~
5、左移位 << 右移位 >>
(3)从真值表可以看出:位或操作的特点是,只有0和0位或的结果是0,其余全是1.
(4)位或和逻辑或的区别:位或时两个操作数是按照二进制位彼此对应为相或的,逻辑或是两个操作数作为整体来相或的。
#include<stdio.h> #include<stdlib.h> int main(void) { int a = 45; int b; int c; b = ~a; c = !a; printf("b=%d\n",b); printf("c=%d\n",c); system("pause"); return 0; }
#include<stdio.h> #include<stdlib.h> int main(void) { unsigned int a = 45; // a:101101 unsigned int b = 23; // b:010111 unsigned int c; // c:111010 c = a^b; printf("c=%d\n",c); system("pause"); return 0; }
注意最后一条,有符号数,右移位左侧补符号位
4.2.2.5、举例:
(1)我们需要一个bit3~bit7为1(隐含意思就是其他位为0)的二进制数我们可以这样做:(0x1f << 3).
(2)更难的要求,获取bit3~bit7为1,同时bit23~bit25为1,其余位为0
#include<stdio.h> #include<stdlib.h> int main(void) { unsigned int a ; a =( (0x1f << 3)|(0x7 << 23)); printf("a=0x%x\n",a); system("pause"); return 0; }
(3)获取bit4~bit10为0,其余为1.
#include<stdio.h> #include<stdlib.h> int main(void) { unsigned int a ; a = ~(0x7f<<4); printf("a=0x%x\n",a); system("pause"); return 0; }
4.2.2.6、位运算实战演练:
(1)a | = (1 << 3);
(2)a |= (0x1f << 3);
(3)a &= (~(1 << 15));
(4)a &= (~(0x1ff<< 15));
(5)
(6)
要明白置1和赋值都是用位或。赋值之前要把原来的数清除。
(7)
(8)
//备注:第七题和第八题的0x3ff是误写,真实的是0x7ff.
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C 语言简单加减乘除运算
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言二进制思想以及数据的存储
- C语言中计算正弦的相关函数总结