Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1449611
C语言中提供给开发人员一种位的运算,这种位的运算常用在检测和控制领域中,这和c语言的特性关系非常大,因为c语言是具有高级语言的特点和低级语言的功能,能完成一些汇编语言所能完成的功能。给开发人员提供了一定的简便。
【运算符】位运算中有6中运算符【&,|,^,~,<<,>>】分别是按位与,按位或,按位异或,取反,左移,右移。
其中除了~,其他都是二目元,而且在运算中的运算量只能是整形或者是字符型,绝对不能有实型出现。
当然在运算中,所有的运算量都应该是binary.
下面分别来比较各种运算符:
【一】:按位与“&”,当二个运算量中相应的二进制位都为1的时候,则该位才是1,否则其他就是0;
如果是负数参加运算,则应该是以补码的形式表示为二进制,然后再进行按位的与的运算;
按位与的一些作用:
1:清零 2:取一个数中的某些指定位 3 :保留某个数中的制定位
【二】:按位或“|”,当二个运算量中相应的二进制位为1的时候,则该位运算结果是1,否则其他就是0;
【三】:按位异或“^”,该运算也称XOR运算符,二个二进制位同号,该位运算的结果则是0,异号则为1;
两个相应是否为“异”,为“异”就取值1,否则为假0;
按位异或的一些作用:
1:使特定的位翻转 2:与0相^,保留原值 3:交换两个值,不用临时变量
【四】: “取反”运算符,是一个单目元,用来对一个二进制数按位取反,对任何一个数应该先转化位二进制,再进行取反;这里值得一提的是取反的法则,就是将数据中的 某位中的1变成0,0变成1,但是应该注意一点是将C的source移植到32位存放一个整数的计算机系统上的过程。为了使移植性加强,我们可以取得某一 位时该数&&某数时,可以采用a=a&~1【举个例子】这种方法来取得最后一位。切记取反与正负号运算是不同的。
~运算符的优先级别比算术运算符,关系运算符,逻辑运算符和其他位运算符都高。
【五】: “左移运算符”,是指将一个数的各个二进位全部左移若干位,左移的过程中右边则补0,高位溢出舍弃不用。一般情况下【不包括左移高位溢出舍弃的数中不包含 1的情况】左移N位后,使该数变成原来数的2的n次方倍。对于左移舍弃位中包含1的情况下,日后查询资料后再做研究:)
【六】:“右移运算符”, 与左移运算相反,右移使原来的数缩小到原来数的2的n次方。但是应该注意右移的过程中要注意符号位的问题。对于无符号数,右移时左边高位移入0,对于有符 号的值,如果原来符号为0【正数】,则左边也是移入0,如果时1【负数】,左边移入1,还是0这个就要取决所用到的计算机系统,移入0时称为【逻辑右 移】,移入1时称为【算术右移】
最后对于不同长度的数据进行位运算的过程方法是:
系统一般都是采取右端对齐,例如:a&b,a位long,b为int,如果b为正数,左侧16位补满0,b为负数,左端应该补满1,b为无符号整数型,左侧填满0。
自 己的一些见解:在位运算过程中,或者用到位标识的时候,一般都是针对该数二进制数的某一位进行运算,特别在通讯领域,系统本身就是要求缩减系统的大小。位 的使用就恰恰使这块得到广阔的使用空间。比如我们在一般的应用开发软件中,设置相应的”开关“,一般都是用布尔型或者使用一个short int型进行标识,但是在使用位的运算中,可以使用一个由几位组成的一个二进制数,由其中1位或者几位组成一个”开关“,所以说位的使用对于系统大小有严 格要求的有一定的优势。
分享到:
相关推荐
有很多初学C语言的人对于 位运算概念不容易弄清楚, 希望我的这个程序能有所帮助。
C语言位运算,ppt,可以用来教学和学习,内容充实,可靠,有助于C语言的学习。
C语言位运算PPT学习教案.pptx
C语言 位运算PPT学习教案.pptx
C语言 位运算PPT课件.pptx
C语言位运算PPT课件.pptx
工作学习上都需要用到C语言裸机下运算矩阵,找了一些库不是很理想; 浏览了上述博客中博主的程序,发现他 @shuoyueqishilove 写得很清晰, 简明易懂;不过原程序无法直接达到我想在stm32上运行的需求,安全性 也有很...
C语言程序设计位运算PPT课件.pptx
c语言集合的运算,对学习了离散数学要完成老师布置的作业-用c语言对集合的运算进行编程
C语言数据运算PPT学习教案.pptx
第三C语言讲解位运算PPT学习教案.pptx
C语言关系运算及关系代数PPT学习教案.pptx
1、通过作业的讲解加强C语言的开发能力; 2、通过作业初步认识函数的概念; 3、学习几种位运算的原理和特点;
C语言程序设计位运算PPT学习教案.pptx
C语言数据运算PPT课件.pptx
c语言做的四则运算共5个版本
是我博客的pdf形式,本文档来自Unix技术网,方便大家学习使用。
C语言程序设计位运算完PPT学习教案.pptx
这个文档有助于理解c语言中的位运算,便于大家学习
第三C语言讲解位运算PPT课件.pptx