1. c语言按位异或什么意思
按位异或,其操作符为^,形式为
a^b
计算时,根据操作数a和b每位的值,计算结果,当a,b的对应位上值相同时,结果的该位上值为0,否则值为1。
如
char a = 0x12, b = 0x34;
a^b
= 0x12 ^ 0x34
= B0001 0010 ^ B0011 0100
= B0010 0110
=0x26
2. C语言的按位与,或,非,异或都什么意思.有什么用
位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。
优先级从高到低,依次为~、&、^、|
按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x & 0177。二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x = x & 077。
按位或运算的典型用法是将一个位串信息的某几位置为1。如将要获得最右4位为1,其他位与变量j原来其他位保持相同,可用逻辑或运算017|j;
按位异或运算的典型用法是求一个位串信息的某几位信息的反。如欲求整型变量j的最右4位信息的反,用逻辑异或运算017^j,就能求得j最右4位的信息的反,即原来为1的位,结果是0,原来为0的位,结果是1。 交换两个值,不用临时变量,假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:
a=a^b; b=b^a; a=a^b;
取反运算常用来生成与系统实现无关的常数。如要将变量x最低6位置成0,其余位不变,可用代码x = x & ~077实现。
3. C语言的逻辑运算和按位运算怎么区分
1、作用的不同
&&、||是逻辑运算符,用于从左到右求表达式的真值。假设x=1;y=2;那么x&&y=1;x||y=1。
&、|是位运算符,是对x,y进行位运算,x,y取值如上,那么有x&y=0;(x的二进制表示为00,y的二进制表示为10)。
2、判断这个表达式的真或假的不同
&和|既是逻辑运算符也是位运算符,而&&和||只是逻辑运算符。
当&与&&同为逻辑运算符时,它们都用于连接两个Boolean类型的表达式,当&和&&的两端表达式同时为真时,表达式的结果为真,只要有一端为假,那么表达式结果为假。
例:3>5&3>2;3>5&&3>2;
当|和||的两端表达式同时为假时,表达式的结果为假,只要有一端为真,那么表达式结果为真。
3、计算方式不同
当使用&运算符:计算机在判断表达式的值的时候,先判断3>5的值为假,然后再判断3>2的结果为真,于是最后的结果是假&真为假;
但是当我们使用&&运算符的时候:计算机先判断3>5的值为假,此时表达式的结果一定为假,所以计算机就不再往下判断了,判定表达式结果为假。
4. C语言中按位与(&)运算符是什么意思
位运算符就是直接对整数在内存中的二进制位进行操作运算。比如,&&运算本来是一个逻辑运算符,但整数与整数之间可以用&进行运算。举个例子,6的二进制是110,11的二进制是1011,那么6 & 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。
C语言提供了六种按位运算符:& 按位与| 按位或^ 按位异或~ 取反<< 左移>> 右移
也就是与上0相当于把那位数清0,与上1相当于把那位保留。
5. C语言中“按位运算符”是什么意思
1、按位运算符就是直接对整数在内存中的二进制位进行操作运算。比如,&&运算本来是一个逻辑运算符,但整数与整数之间可以用&进行运算。举个例子,6的二进制是110,11的二进制是1011,那么6 & 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。
2、C语言提供了六种按位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
6. C语言中按位与(&)运算符的应用
这里的0177是8进制数,表示成2进制后为000 001 111 111,除了低7位是1,其他高位都是0,0和任何数与(&)的结果都是0!
7. c语言中按位与。。按位或什么意思
位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码)00000001 (1的二进制补码)可见9&5=1。
8. C语言,按位与
注意a的初始化是八进制数,十进制表示是36929,同理a1是十进制数
两个数看起来是二进制,但是都必须重新转换为二进制进行位运算