爱生活

 找回密码
 立即注册
搜索
查看: 52|回复: 0
打印 上一主题 下一主题

c语言里的按位或是怎么算的?,按位或怎么算

[复制链接]

14万

主题

14万

帖子

-134万

积分

限制会员

跳转到指定楼层
楼主
发表于 2023-2-18 01:39:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

c语言里的按位或是怎么算的?
书上说是两个数转二进制后按位取或,可是15|-9不应该是-15吗?为什么执行得-1



有一个常识需求了解一下。整型数在内存中是以补码形式表示的,如下式:
    15 = 00001111
    -9  = 11110111‬
-----------------------------
             11111111 = (-1)
|是把15和-9两个补码按位作“或”运算,结果是一个全1的数(也是补码形式),从补码知识就知道这个数是-1


按位运算符是怎么运算的?


1、按位运算符是把两个操作数分别转换成二进制数,如果两个二进制数长度不一样,在短的左边补0,补到一样的长度,然后对两个二进制数按对应的位进行运算。
2、示例按位与:
11101010
00011111
------------
00001010


C语言中按位或,与,非是怎么用的,怎么运算?


位运算符
C提供了六种位运算运算符;这些运算符可能只允许整型操作数,即char、short、int和long,无论signed或者unsigned。
&
按位AND
|
按位OR
^
按位异或
<<
左移
>>
右移
~
求反(一元运算)
按位与操作&通常用于掩去某些位,比如
n
=
n
&
0177;
使得n中除了低7位的各位为0。
按位或操作|用于打开某些位:
x
=
x
|
SET_ON;
使得x的某些SET_ON与相对的位变为1。
按位异或操作^使得当两个操作数的某位不一样时置该位为1,相同时置0。
应该区分位操作符&、|与逻辑操作符&&、||,后者从左到右的评价一个真值。比如,如果x为1、y为2,那么x
&
y为0,而x
&&
y为1。
移位运算符<<和>>将左侧的操作数左移或者右移右操作数给定的数目,右操作数必须非负。因此x
<<
2将x的值向左移动两位,用0填充空位;这相当于乘4。右移一个无符号数会用0进行填充。右移一个带符号数在某些机器上会用符号位进行填充(“算数移位”)而在其他机器上会用0进行填充(“逻辑移位”)。
单目运算符~对一个整数求反;即将每一个1的位变为0,或者相反。比如
x
=
x
&
~077
将x的后六位置0。注意x
&
~077的值取决于字长,因此比如如果假设x是16位数那么就是x
&
0177700。这种简易型式

C++ 按位与、或、异或等运算方法


参加运算的两个数据,按 二进制位 进行“与”运算。
   运算规则:0&0=0;   0&1=0;    1&0=0;     1&1=1;
    即:两位同时为“1”,结果才为“1”,否则为0
   例如:3&5  即 0000 0011 & 0000 0101 = 0000 0001,因此,3&5的值得1。
   另, 负数按补码形式参加按位与运算
   “与运算”的特殊用途:
   (1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。
   (2)取一个数中指定位
   方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。
   例:设X=10101110,
   取X的低4位,用 X & 0000 1111 = 0000 1110
   即可得到;还可用来取X的2、4、6位。
   参加运算的两个对象,按二进制位进行“或”运算。
   运算规则:0|0=0;   0|1=1;   1|0=1;    1|1=1;
   即 : 参加运算的两个对象只要有一个为1,其值为1
   例如:3|5 即 0000 0011 | 0000 0101 = 0000 0111,因此,3|5的值得7。
   另,负数按补码形式参加按位或运算。
   “或运算”特殊作用:
   (1)常用来对一个数据的某些



上一篇:水里为什么会长青苔?,水有青苔怎么回事
下一篇:酱牛肉怎么做 酱牛肉的家常做法,怎么做酱牛肉的做法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

站点统计|手机版|小黑屋|爱生活 ( 蜀ICP备20006951号 )|

 

快速回复 返回顶部 返回列表