请高手把下面的C程序代码简要分析一下,主要是两个赋值表达式,谢了!
#include "stdio.h"
main()
{
int a,b;
a=077;
printf("a=%d\n",a);
b=a&3;
printf("\40: The a & b(decimal) is %d \n",b);
b&=7;
printf("\40: The a & b(decimal) is %d \n",b);
getch();
}
答案:a=077; 为8进制的77,即10进制的63,即2进制的111111;
b=a&3; &是“与”号,要在2进制下计算,111111&11就是b的值,为11,即10进制的3
b&=7;同理可得11&111=11
其他:不是高手,下面是我的理解:
int a,b;
a=077;//将八进制数77赋给a
printf("a=%d\n",a);//用十进制的格式打印出a的值
b=a&3;//将a与3做按位与运算,并将结果赋值给b
printf("\40: The a & b(decimal) is %d \n",b);//用十进制的格式打印出b的值
b&=7;//将b与7做按位与运算,并将结果赋值给b
printf("\40: The a & b(decimal) is %d \n",b);//用十进制的格式打印出b的值
getch();//等待输入一个任意字符
。。。。。。。
有错的话,请指正! a=077; //在整数前加0表示八进制数,所以a=7*8^1+7*8^0=63
b=a&3 //与运算 a=111111(二进制) 3=11(二进制)
111111
000011
&
——————
000011
b=000011(二进制)=3(十进制)
b&=7; //b=b&7; 一样
上一个:C语言中*p1=*p2与p2=p1有什么区别?都是指针型~谢谢啦
下一个:关于C语言数组指针的应用