C语言中^的问题

   更新日期:2024.06.03
^意思是异或,二进制表示中,相异则为1,例如0^1=1,但是1^1=0,0^0=0。
所以把a写为0001,b为0010,c为0011
首先a^b结果是0011
然后0011&c结果是0011,x为3。

其中&意思是都为1,结果才为1。
例如1&1=1, 0&1=0, 0&0=0。

^是异或操作。&是按位与操作。
异或
1.先说异或的逻辑符号:^.
2.异或的逻辑定义:真^真=假
真^假=真
假^真=真
假^假=假。
3.计算机中的逻辑运算用1表示真,0表示假。
4.两个字节按位异或的例子:
01111001
11100111^
-------------------
10011110

按位与
按位“与”运算符 (&)
对两个表达式执行按位“与”。
result = expression1 & expression2
参数
result
任何变量。
expression1
任何表达式。
expression2
任何表达式。
说明
& 运算符查看两个表达式的二进制表示法的值,并执行按位“与”操作。该操作的结果如下所示:
0101 (expression1)
1100 (expression2)
----
0100 (result)
任何时候,只要两个表达式的某位都为 1,则结果的该位为 1。否则,结果的该位为 0。

^是按位异或运算符,而&是个按位与运算符
a=1,二进制表示为00000000 00000001
b=2,二进制表示为00000000 00000010
a^b=00000000 00000011 也就是十进制的3

c=3,二进制表示为00000000 00000011
这样(a^b)&c=00000000 00000011,也就是十进制的3
答案应为3

  • 18361469935 :C语言中^的问题
    蒋亭寒3412 :答:^意思是异或,二进制表示中,相异则为1,例如0^1=1,但是1^1=0,0^0=0。所以把a写为0001,b为0010,c为0011 首先a^b结果是0011 然后0011&c结果是0011,x为3。其中&意思是都为1,结果才为1。例如1&1=1, 0&1=0, 0&0=0。
  • 18361469935 :c语言小问题,c=a^b,请问这里的^是什么意思
    蒋亭寒3412 :答:c=a^b是将a和b的二进制数按位进行异或运算(即数位相异为1,相同为0), 也就是说c是一个二进制数;如果是计算次方的话就要用:c=pow(a,b);
  • 18361469935 :C语言中x^=y是什么意思
    蒋亭寒3412 :答:2010-08-07 C语言中x+=y,x-=y分别表示什么意思 47 2014-12-31 c语言中x+=++y是什么意思 9 2011-08-17 C语言中X*=*Y是什么意思 3 2015-07-04 c语言中x+=y是什么意思 2014-11-13 C语言中y=++x是什么意思 14 更多类似问题 > c语言的相关知识2011-03-14 +=在C语言中什么意思啊? 2165...
  • 18361469935 :c语言里的疑问,所有文件都是以^z结尾的吗?
    蒋亭寒3412 :答:应该是fgetc读到文件尾而不是读到什么结尾符。EOF是什么你因该很清楚了吧,^z是什么我看你还不知道:打开命令行(就是那种黑窗口),输入命令:copy con file.txt,意思就是把标准输入存入文件file.txt中,你输入一些字符后,按住Ctrl键再按z键(按F6等价),然后回车,这个按键组合告诉CMD文件输入完...
  • 18361469935 :C语言中term does not evaluate to a function错误
    蒋亭寒3412 :答:我帮你修改了一下:int main(){float a,b,c,d,e;printf("输入三角形的三边长\n");scanf("%f%f%f",&a,&b,&c);d=(a+b+c)/2;e=(d*(d-a)*(d-b)*(d-c))^(0.5); //这里^(0.5)是什么?,根号;result = sqrt(x);printf("三角形面积e=%f\n",e);return 0;} ...
  • 18361469935 :C语言中判断素数涉及sqrt的问题
    蒋亭寒3412 :答:假设一个数a;那么a=(a^1/2)*(a^1/2);如果a不是素数;那么a有一个因子b a=b*c;那么a的因子中(b或c)必定有一个是小于等于a^1/2的;所以判断的时候不用判断到1-a,只需要1-a^1/2;一个数的因子不可能大于其平方根,因此可以缩小范围。
  • 18361469935 :c语言中关于级数求和的问题y(x)=x+x^3/(3*1!)+x^5/(5*2!)+...令x=...
    蒋亭寒3412 :答:; while(i<=10) { n=pow(x,(2*i-1)); t=Factorial(i-1); m=(2*i-1)*t; y+=n/m; i++; } printf("%lf",y); return 0;}我按照你的改的,为什么循环10次我不知道,但是按照公式应该是这样吧 ...
  • 18361469935 :C语言编程中的问题
    蒋亭寒3412 :答:C语言程序设计入门学习六步曲 笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个: 一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的...
  • 18361469935 :C语言程序设计中几个很基础的问题,求大神帮忙解答,感激不尽~~_百度...
    蒋亭寒3412 :答:x/3为int存储为3 y==3为true 取反则为0 B. y!=x%7 x%7=3 y!=3为false 则为0 C. x>0&&y<0 x>0 满足 y<0不满足 求同则为false 则为0 D. x!=y||x>=y x!=y满足 为true x>=y不满足 为false true||false 为true ...
  • 18361469935 :C语言中函数调用的问题?
    蒋亭寒3412 :答:关于c语言中函数调用问题解答如下:首先如果是编译的这个代码那这个函数肯定被调用了,让你觉得没有调用是因为while循环没有被执行。图中红色框内代码p1和p2经过赋值p1是肯定大于p2所以不满足while.的条件直接退出了函数。你需要看看要实现啥在改一下。
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网