1.位运算的实现
char a=5,b=-7
a: 0000 0101原、反、补
b: 1000 0111 原
1111 1000 反
1111 1001 补
a&b : 1111 1001 b 补码
0000 0101 a 补码
0000 0001 a&b =1
a|b : 1111 1001 b 补码
0000 0101 a 补码
1111 1101
1111 1100 反码
1000 0011 a|b=-3
a^b: 1111 1001 b 补码
0000 0101 a 补码
1111 1100
1111 1011 反码
1000 0100 a^b=-4
~b :1111 1001 b 补码
0000 0110 ~b=6
- >2 :0000 0101 a 补码
0000 0001 a>>2=1
b<<2 :1111 1001 b 补码
1110 0100
1110 0011 反码
1001 1100 b<<2=-28
2.#include <file.h>和#include "file.h"有什么区别?
<>直接在系统库文件中查找该头文件
""先在当前目录下找头文件,如果找不到,则在系统库文件中查找
3.解读程序#include <stdio.h>
void main()
{
int a=3;
a+=3!=3; //先算3!=3 ,值为0;再a=a+0,a=3;
a*=++a+a; //先算++a,++a先自增后运算,++a等于4,a的值为4,
++a+a的值为8,a=a*(++a+a)=32
printf("a=%d\n",a);
return 0;
}
a=32