❶ c语言位运算
顺着说不知道怎么和你讲,就反过来说吧,首先是-3,你要先把它3的二进制写出来,就是00000000 00000011 ,然后求它的反码,就变成11111111 11111100 ,再就是将反码加1变成它的补码,11111111 11111101,这就是-3在计算机中所存储的形式,因为是要求按位求反,所以-3在计算机中的形式经过语言的变化就变成00000000 00000010,这个数就是2在计算机中的存储形式,你这个问题就是将我的回答反过来用就是了。
❷ C语言位运算!!!
这是二进制的位运算: 10D^5D=1010B^0101B=1111B=15D 按照异或运算的规则,两个位相同得到0,不同得到1
❸ C语言中的位运算是怎样的
如果你把所有的操作数都用二进制来表达就清晰了,如下
位与 & 相同位按与来运算即可 如:
1 & 2 =0
-------------
二进制是这样的 01 & 10 = 00
位或 | 一样,按位来或即可
1|2 = 3
--------------
二进制是这样: 01|10=11
其他位运算都是按二进制位来运算的,你转换成2进制就好理解了
❹ c语言位运算
这个涉及到运算符的优先级和结合性,搜索一大堆
m=a>b 这个表达式,因为关系运算符的优先级大于赋值运算符,所以相当于m=(a>b)
a为5 b为6 所以a>b为假 即为0 将0赋给m
n=c>d 同理 n的值为0
0&0 结果为0
❺ c语言位运算,求详解!!
结果是3 ^异或符号 & 与 符号
二进制你可以用电脑的计算器算出来,或者除2取余法
a^b :
a二进制 0001
b二进制 0010
异或结果 0011
所以a^b结果为0011就是 3
然后3&3 就是 0011&0011 结果 0011 = 3
最终结果为 3
❻ 关于C语言中的位运算。
位运算能使c具有汇编的某些能力
比如提高运算速度啊 和硬件更好的偷情啊 节约存储空间什么的 等等
比如说吧
像楼上的直接移位就比使用/运算符快些哈
❼ c语言之中的位运算符是怎么运算的呢
C语言提供了表12—1所列出的6种位运算符以及表12-2所列出的5种扩展运算符。
表12-1
运 算 符 含 义 优 先 级
~ 按位求反 高
<< 左移
低
>> 右移
& 按位与
^ 按位异或
| 按位或
表12-2
扩 展 运 算 符 表 达 式 等 价 的 表 达 式
<<= a<<=2 a=a<<2
>>= b>>=1 b=b>>1
&= a&=b a=a&b
^= a^=b a=a^b
|= a|=b a=a|b
【说明】
位运算符中,只有“反求”(~)是单目运算符,即要求运算符两侧各有一个运算量,其余均为双目运算符。
运算的运算对象只能是整形或字符型数据,不能是其他类型的数据,在VC 6.0中整形数据占4个字节,字符型数据占1个字节。
参与运算时,操作数都必须首先转换成二进制形式,然后再执行相应的按位运算。
各双目运算符与赋值运算符结合可以组成扩展的赋值运算符,见表12-2.
12.2 位运算符详解
12.2.1 按位与运算
按位与运算“&”的运算格式:
操作数1&操作数2
【说明】
其中“操作数1”和操作数“2”必须是整型或字符型数据。
按位与运算规则是:当参加运算的2个二进制数的对应位都为1,则该位的结果为1,否则为0,即0&0=0,0&1=0,1&0=0,1&1=1。
【例如】
4&5的运算如下:
00000100 (4)
(&) 00000101 (5)
00000100 (4)
因此,4&5的值为4。
可以利用按位与运算来实现一些特定的功能,下面介绍几种常见的功能。
清零
如果想将一个数的全部二进制置为零,只要找一个二进制数,其中个个位要符合以下条件:原来的数中为1的位,新数中相应的位为0。然后使二者进行按位与运算即可达到清零的目的。
【例如】
原有数为171,其二进制形式为10101011,另找一个数,设它为00010100,它符合以上条件,即在原数为1的位置上,它的位值均为0。将两个数进行&运算:
10101011
(&) 00010100
00000000
当然也可以不用00010100这个数而用其他数(如01000100)也可以,只要符合上述条件即可。任何一个数与“0”按位于之后的结果为0。
娶一个数中某些指定位
【例如】
有一个两字节的短整型数x,想要取其中的低字节,只要将x与八进制数(377)8按位于即可。如图12-1所示,经过运算“z=x&y”后z只保留x的低字节,高字节为0.
x 00 10 11 00 10 10 11 00
y 00 00 00 00 11 11 11 11
z 00 00 00 00 10 10 11 00
图12-1 取x的低八位数
x 00 10 11 00 10 10 11 00
y 11 11 11 11 00 00 00 00
Z 00 10 11 00 00 00 00 00
图12-2 取x的高8位
如果想取两个字节中的高字节,如图12-2所示只需进行运算z = x &(177400)8。
保留一个数的某些位
要想将哪一位保留下来,就与一个数进行&运算,此数在该位取1。
【例如】
有一数01110100,想把其中左面第1、3、5位保留下来,可以这样运算:
01110100 (十进制数116)
(&) 10101010 (十进制数170)
00100000 (十进制数32)
❽ c语言 位运算
根据运算符优先级,先运算>>,再运算|,最后运算=
http://www.slyar.com/blog/c-operator-priority.html
优先级表,自己看。
❾ C语言 位运算
<<(按位左移)
>>(按位右移)
&(按位与)
|(按位或)
∧(按位异或)
~(按位取反)
这个在一般编写程序不常用