~(a^~a)在c语言中是什么意思?

作者&投稿:恽净 (若有异议请与网页底部的电邮联系)
~叫“按位取反”运算,2优先级
^按位异或运算符,9优先级
()运算符优先级最高
所以先计算括号里面的~a
计算结果与a异或
整个运算结果 再按位取反
所谓按位取反就是:
比如int类型的a=10;
内存中存放的是0x0000000a->相当于0000000000000000000000001010(你自己再数一下,对于32位系统来说 int是32位的最高位是符号位)
按位取反之后就是0xfffffff5->相当于11111111111111111111111111110101;
最高位是符号位此数是整数的补码(至于补码怎么变成我们常用的数的自己查资料吧),表示成int就是-11;
按位异或,异或运算1^1=0,0^0=0,1^0=1,0^1=1(全部为二进制表示)
具体的就不演算给你看了!
对于~(a^~a)运算结果一直是0
a与~a每一位都相反,异或之后结果每一位都为1(相反两数异或结果为1,参考这一行上面的第三行)
每一位结果都取反结果每一位都为0
即:
0x00000000补码表示
结果是0;
解释完毕!

~(a^~a)在c语言中是什么意思?~

a取反,在于a求异或,最终取反

异或是一个数学运算符。它应用于逻辑运算。

在【布尔值运算】中:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。

在【二进制值运算】中:不同为1,相同为0,如1001异或1010等于0011。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。

a在c语言中没意思,ASCLL码中是97,前面几个都是运算符,”#“是宏定义的开头。
~是按位取反
&是按位与
%是取模(余数)
^ 是按位异或

*是访问地址或指针,
c语言书上都有,运算符上能查不到嘛?

~(a^~a)在c语言中是什么意思?
答:~叫“按位取反”运算,2优先级 ^按位异或运算符,9优先级 ()运算符优先级最高 所以先计算括号里面的~a 计算结果与a异或 整个运算结果 再按位取反 所谓按位取反就是:比如int类型的a=10;内存中存放的是0x0000000a...

~(a^~a)在c语言中是什么意思?
答:a取反,在于a求异或,最终取反 异或是一个数学运算符。它应用于逻辑运算。在【布尔值运算】中:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果...

c语言中^是什么意思?
答:符号^在c语言里是“按位异或”的意思。按位异或运算 按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下...

C语言中^代表什么?什么意思?
答:C语言中“ ∧ ”是“按位异或”运算符(Bitwise exclusive OR operator)。整数在计算机中用二进制的位来表示,C语言提供一些运算符可以直接操作整数中的位,称为位运算,这些运算符的操作数都必须是整型的。按位异或运算符...

c语言中~a什么意思
答:!表示“非”,是一种逻辑运算。若a的真值为1,则!a为0;若a的真值为0,则!a为1。

c语言中^是什么意思
答:^是按位异或的意思。对于每个数字都可以表示成二进制,然后分别对相对应的数字求结果。规则是同0异1,如:0000^1111 结果就为1111

c语言中的 ^ & | 都分别是什么意思啊
答:^是异或的意思。他的规则是参加运算的两个二进位同号,则结果为0(假),异号则为1(真)即0^0=0,0^1=1,1^0=0,1^1=0;比如 00111001(57)(^) 00101010(42)___00010011(19)&是与运算,如果两个都是1...

c语言中&,|,还有^都个指是什么意思
答:3&5=011B&101B=001B=1(B表示二进制)&&,||,!是逻辑运算符,&&是逻辑与;||是逻辑或;!是逻辑非。0为假,非0为真。如:a=8,b=6,c=0,那么a&&b为真,a||b为真,b&&c为假,!a=0,!c=1....

c语言中a是什么意思
答:定义int a,意思就是系统自动为变量a分配了一个int型的内存空间。感叹号!是C中的逻辑非运算符。 C语言是没有boolean数据类型的,所以也就没有true,false这样的值。C中的逻辑运算值是用整型0/1来代替的。0为假,1为真...