int a=1234; a=a&0377; printf(“%d %o\n”,a,a); 输出为14
0377为8进制 转为二进制为11111111
a 是等于12 , 还是是16进制的a , 还是a要换成2进制, 我都乱了。。。 为什么要换成2进制的补码而不是源码?? 求大神,有点乱
int a=12; a=a&0377; printf(“%d %o\n”,a,a); a是等于12 该怎么算
具体怎么算啊
追答a=1234 变成二进制的补码形式:10011010010
八进制0377 是十进制的255变成二进制的补码形式:00011111111(不足的前面补0)
&代表与,即参加运算的2位都是1才是1,其他都是0。结果是00011010010,转化成十进制:210