当前位置:编程学习 > C/C++ >>

请高手把下面的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语言数组指针的应用

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,