c语言中a^b怎么算

作者&投稿:点美 (若有异议请与网页底部的电邮联系)
在C语言中a^b是什么意思啊~

定义
  异或(xor)是一个数学运算符。它应用于逻辑运算。异或符号为“^”。 其运算法则为a异或b=a'b或ab'(a'为非a)。
  真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。
  异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0,这些法则与加法是相同的,只是不带进位。

异或运算法则
  1. a ^ b = b ^ a
  2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
  3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.
  4. a ^ b ^ a = b.
  x是二进制数0101
  y是二进制数1011
  则结果为x^y=1110
  0^0=0
  0^1=1
  1^0=1
  1^1=0
  只有在两个比较的位不同时其结果是1,否则结果为0
  即“相同为0,不同为1”!

作用
  在计算机中普遍运用,异或(xor)的逻辑符号 ^ (Shift + 6)或一个圆圈里面增加一个+(⊕)或者·.形象表示为:
  真^假=真
  假^真=真
  假^假=假
  真^真=假
  或者为:
  True ^ False = True
  False ^ True = True
  False ^ False = False
  True ^ True = False
  部分计算机语言用1表示真,用0表示假,所以两个字节按位异或如下
  00000000
  异或
  00000000
  =
  00000000
  ============我是分界线============
  11111111
  异或
  00000000
  =
  11111111

参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0,
1^0=1,
0^1=1,
1^1=0
例如:10100001^00010001=10110000
0^0=0,0^1=1
0异或任何数=任何数
1^0=1,1^1=0
1异或任何数-任何数取反
任何数异或自己=把自己置0
(1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。
         
10100001^00000110=10100111















//1010
0001
^
0x06
=
1010
0001
^
6
(2)通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数a,b的值,可通过下列语句实现:

a=10100001,b=00000110

a=a^b;
  //a=10100111

b=b^a;
  //b=10100001

a=a^b;
  //a=00000110
(3)异或运算符的特点是:数a两次异或同一个数b(a=a^b^b)仍然为原值a.

^表示异或,就是对应的bit如果不相同,则结果为1
a^b的含义就是把a和b转换成2进制的bit,然后按位异或
例如:3^5=00000011^00000101=00000110=6

b=(a+1)*[(a+1)-1)]

++a之后a=6;a再--变为5;5×5=25

解题关键在++a和--a上面,++a的意思是a先参加运算在+1,--a同理,所以,b=++a*--a与b=a*a等价,答案是b=25。

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

如果数据小
加入#include<cmath>
int(pow(a,b))就是a^b的值
如果数据大
用高精度乘


c语言编写c=a^b的算式
“c等于a的b次方”不是用"^"这个符号来表示的,是用c=pow(a,b);这样才能表示

c语言中符号&,|,^是什么意思?例如x=a&b,x=a|b,x=a^b分别是什么意思?
&与,|或,^异或 这些运算都是二进制运算 例:a=7 , b=10 x=a&b = 2(bit0111&bit1010 = bit0010 );x=a|b = 15(bit0111|bit1010 = bit1111 );x=a^b = 13(bit0111^bit1010 = bit1101 );

C语言中的^ 和&怎么用?什么意思?
^按位异或,&按位与 例如:表达式3^5和3&5 计算过程:3 = 0000 0011b 5 = 0000 0101b 异或:0 ^ 0 = 1 ^ 1 = 0 , 0 ^ 1 = 1 ^ 0 = 1 所以 3 ^ 5 = 0000 0110b = 6 与:0 & 0 = 0 & 1 = 1 & 0 = 1 , 1 & 1 = 1 所以 3 & 5 = 0000 0001b = 1...

^=是什么意思?
^=是C\/C++的一个符合运算符。表示异或赋值。如:a^=b相当于:a=a^b;异或就是两个数的二进制形式,按位对比,相同取0,不同取。

C语言中有 ^ 这个运算符吗?
有的,“^”是“位异或”。另外运算符号还有:()、 []、 -> 、 .、!、 ++、 --:圆括号、方括号、指针、成员、逻辑非、自加、自减 ++ 、 -- 、 * 、 & 、 ~ 、!:单目运算符 < 、 <= 、 > 、 >=:关系运算符

C语言中 ^怎么用
在C语言中,“^”是双目运算符,用于完成两个数据的按位异或操作。该运算符可以用来进行两个数据的比较或者对一个数据中的某些位进行处理。1、if(a^0x8)a=0;\/\/如果a不等于08H则a=0 2、a=a^0xf0;\/\/将a的高4位取反低4位不变后存回a ...

Pascal 语言中"(「A∧B)∨(C∧D∨A)"什么意思
1、 布尔常量 在Pascal语言中"真"用ture表示,"假"用False表示。所以布尔类型只有TRUE与FALSE两个常量。2、 布尔变量(BOOLEAN)如果我们将某些变量说明成布尔型,那么这些变量就是布尔变量,它们只能用于存放布尔值(ture或false)。例如,VAR A,B:BOOLEAN;3、 布尔类型是顺序类型 由于这种类型只有两...

C语言中a^b是什么意思啊?
按位异或 比如 a 为 5 --- 0101 b 为 7 ---0111 ___0010 对应位相同为0, 不同为1

c=a^b<<2在c语言中什么意思?如果a=3,b=6
^按位异或运算符,相应位相同,则结果为0,否则为1 <<左移运算符,优先级高于^ c=a^b<<2=a^(b<<2)b=6,b<<2=24 (左移一位相当于乘2) a=3=00000011 Bb<<2=24=00011000 B^=--- 00011011 B = 27 (D)

在C语言中^=是什么意思
在C语言中^=的意思是相等,^=是关系运算符,用来判断两个值大小是否相同,当左边的内容与右边的内容相同时,返回1,其余时候返回0。C语言作为一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行...

鼓楼区15690906128: c语言中a=a^b;这个语句是怎么计算的,举个例子说明 -
乘汤益气: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1.即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例如:10100001^00010001=10110000 0^0=0,0^1=1 0异或任何数=任何数 1^0=1,1^1=0 1异或任何数-任何数取反 任何数异或自己=把自己置0 (1)...

鼓楼区15690906128: C语言c=(a^b) -
乘汤益气:[答案] a和b先做异或操作,再左移俩位最后赋值给c

鼓楼区15690906128: C语言中求a的b次方 -
乘汤益气: double pow(double base, double power); 该函数包含于 math.h中,函数的返回值是base^power.

鼓楼区15690906128: c语言编写计算a的b次方的函数 -
乘汤益气: int mpow(int a,int b) {int sum = 1;int i = 0;int k = b;if(b > 0){for(i = 0;i < k;i++){sum *= a;}}else{k = -b;for(i = 0;i < k;i++){sum /= a;}}return sum; }

鼓楼区15690906128: C语言,编写程序,键盘键入a和b的值,计算并输出a^b的值 -
乘汤益气: #include int main() {int a,b,y=1,i; scanf("%d%d",&a,&b); for(i=0;iy*=a; printf("%d\n",y); return 0; }

鼓楼区15690906128: 如何在C语言中表示一个数的多少次方 -
乘汤益气: 调用 库函数 pow() 如下示例代码: #include<stdio.h> #include<math.h> main() {int x,n,z;x=5; z=pow(x,n); printf("%d",z); }

鼓楼区15690906128: C语言中 &和^是怎么回事? -
乘汤益气: C语言中^与&都是位运算符,^是按位或运算,&是按位和运算.要知道,在计算机实际进行运算时,是把用户输入的数据转化成2进制进行运算的.比如1就会转化为00000001 而2会转化为00000010 ,那么a^b就相当于对这两个二进制数字中每一位都对应进行或运算.例如 00000001和00000010或运算时,两个数每一位只要有一个是1就是1,只有都为0时才为0, 因此结果为00000011 ,而这个结果与c进行位的和运算,即:对应位都为1才是1,否则为0 因此,00000011与3的二进制数00000011的和运算结果为00000011 在输出的时候计算机把二进制数转化为%d所表示的十进制数,即3输出

鼓楼区15690906128: C语言已知int a=1,b=3,则a^b的值为 -
乘汤益气: ^表示二进制按位异或1:000000013:00000011=:00000010 所以a^b=2

鼓楼区15690906128: 编程高手请进,关于C语言中求一个数的次方的问题 -
乘汤益气: 是不能那样算得 楼上地说的是对的 用函数可以解决这个问题 double pow( double x, double y ); 表示a的b次方: pow(a,b)-----> 返回值就是最后的结果

鼓楼区15690906128: 在C语言中“a^b”是什么意思? -
乘汤益气: a 异或 b 按位异或比如 a 为 5 --- 0101b 为 7 ----0111______________0010对应位相同为0, 不同为1 希望对你有帮助.谢谢

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网