好吧这题我刚开始做的时候也以为是次方的符号错选的8【次方一般用的是pow()函数记得要加上表头#include <math.h>】
后来去查了一下——【以下来源于网络】
按位异或 ^——简单来说就是把数字转化为二进制数字然后每一位每一位比对,数字不同则该位为1,同则为0
13^9
13 = 1101
4 = 0100
所以输出的是1001,转化为2进制就是9
TP——一个关于逻辑运算符比较全面的整理
按位非 ~
执行按位非的结果就是返回数值的反码。
【其本质是操作数的负值减1】
在二进制数中最左侧的那一位代表的是正负号;
&按位与
将表达式两端的数字转换成相同位数的二进制字符,对相同位进行比较,如果全部为1,则返回1,否则返回0;
7 = 0000 0111
8 = 0000 1000
7 & 8 =0000
第一个if判断为否定
~7 = -8
对应的二进制是
1000 0111
0x00f是十六进制下的15
0000 1111
&的值是0000 0111 十进制下就是8
第二个if判断正确
复习点——逻辑运算符号 + 二进制补码
1没有printf 2没有return 我就直接选了
【以及哪个大神解释以下ACD选项 度娘了以后还是晕晕的】
sizeof里头不做运算哦(或者sizeof内的运算是向外屏蔽的)
又是a++ ++a/a-- --a
前面遇到过了哦
这个里面有涉及到一个指针
但是不影响做题啦