第十三章位运算学习目标位运算的有关概念和运算规律位运算的有关概念和运算规律位段的概念位段的概念课程内容13
1概述概述13
2位运算符和位运算位运算符和位运算13
3位段位段13
1概述C语言程序设计最大的一个特点就是可以对计算机硬件进行操作,其操作主要是通过位运算实现的
位运算很适合编写系统软件的需要,是C语言的重要特色
在计算机用于检测和控制领域中要用到位运算的知识
所谓位运算就是指进行二进制的运算
在系统软件中,常要处理二进制的问题
例如,将一个存储单元中的各二进制左移或者右移一位,两个数按位相加等
C语言提供位运算的功能,与其他高级语言相比,显然具有很大的优越性
C语言提供6种位运算符运算符含义例子运算功能&按位与a&ba和b按位与|按位或a|ba和b按位或^按位异或a^ba和b按位异或~按位求反~aa按位取反3b右移3位说明:(1)"~"为单目运算符,其余均为双目运算符,优先级高低顺序:按位求反~移位按位与&按位异或^按位或|(2)运算量只能是整型或字符型数据,浮点数不能参与运算(3)参与运算时,操作数都必须转换成二进制形式,然后再执行按位运算13
2位运算符和位运算如果左移出的位不是1,则左移操作相当于乘法操作,左移一位相当于原数乘以2,左移n位,则相当于原数乘以2n左移位运算符左移位运算符2=5左移操作相当于除法操作,右移一位相当于原数除以2,右移n位,则相当于原数除以2n【例13
1】左移位1#include2voidmain()3{4inta=-1;5inti=0;6for(i=0;i