C语言中 printf("%d\n",12&012);这条语句什么意思啊?输出结果是什么?

如题所述

结果是:8

首先 & 是按位与运算,1&1=1,1&0=0,0&1=0,0&0=0

12 是十进制的,表示为二进制是 1100
012 是八进制的,表示为二进制是 1010
1100 & 1010 = 1000

二进制为1000的,表示为十进制就是 8
这样解释不知道你是否明白
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-21
输出结果:8
代码含义:这条语句是以十进制形式打印12&012的结果;
解析过程:&是位运算与,即按二进制位与,同1则1,否则为0。012为8进制数,化为二进制数为:1010;十进制数12,化为二进制数为1100;两个数只有左边第一位都为1,因此与运算结果为1000,化为十进制数为8。
第2个回答  2017-07-03
位操作中的与操作运算符。
也就是常说的and操作,双目运算符。
计算的时候按位计算,&两边操作数对应位上全为1时,结果的该位值为1。否则该位值为0
12&012转为二进制为:
B1100&B1010,
按位计算结果为B1000,(就是看上面两个二进制数相对应位是否相同,相同则保留,不同则为0)
即结果为B1000,也就是8。
第3个回答  2012-09-21
012是一个8进制数,相当于2进制的1010b。这个程序的意思是输出整数,这个整数是由整数12(2进制的1100b)与1010b的“按位且”的操作,得到1000b,就是十进制的8。所以输出8.
第4个回答  2012-09-21
分析:12&012。首先12是十进制数,012是八进制数,&是与运算
计算:先将两个数转化成二进制数001 100,001 010再作与运算结果为001 000,以十进制输出:8(换行)
相似回答