急——C语言中这个语句是什么意思;

来源:百度知道 编辑:UC知道 时间:2024/05/23 11:29:37
int i=1;
for(j=1;j<(012^0x16);j++) i++;

异或运算法^也称XOR运算符。它的规则是若参加运算的两个二进制位同号,则结果为0(假);异号则为1(真)。
即:0^0 = 0, 0^1=1, 1^0=1, 1^1=0
如:
00111001 (十进制数57,八进制数071)
^ 00101010 (十进制数42,八进制数052)
----------
00010011 (十进制数19,八进制数023)
即071^052,结果为023(八进制数)

00001010 (八进制数012)
^ 00010110 (十六进制数0x16)
----------
00011100(十进制数28)
即012^0x16的值为28

所以你的上面的语句其实就是
int i=1;
for(j=1;j<28;j++)i++;

012^0x16

012是八进制数,以0开头,即十进制10
0x16是十六进制数,以0X开头,即十进制22

中间的^是异或运算符,如果相同位上的数相同则为0,不同则为1

012 的二进制数为00001010
0X16的二进制数为00010110
运算后的结果就是00011100,即十进制数28