c语言位运算有什么作用?

c语言位运算有什么作用?C中的位运算可以对整形INT或字符型CHAR进行二进制按位运算&是对两个二进制数进行与运算|…………………或运算^…………………异或运算~是单目运算,对一个二进制数取反是对一个二进制数进行左移运算…………………右移运算 C语言中提供给开发人员一种位的运算,这种位的

大家好,欢迎来到IT知识分享网。c语言位运算有什么作用?"

C中的位运算可以对整形INT 或字符型CHAR 进行二进制按位运算

& 是对两个二进制数进行 与运算
| .....................或运算
^ .....................异或运算
~ 是单目运算,对一个二进制数取反
<< 是对一个二进制数进行左移运算
>>.....................右移运算
 
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时称为【算术右移】 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/10424.html

(0)
上一篇 2024-03-31 20:15
下一篇 2024-04-01 22:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信