int main()标签:return,变量,--,二进制,int,printf,sizeof,main From: https://blog.51cto.com/u_15812356/5747582
{
int a = 5, b = 3;
printf("a=%d b=%d\n", a,b);
//方法1.创建第三个变量进行交换
/*int iTemp = 0;
iTemp=a;
a= b;
b = iTemp;*/
//方法2:加减法——如果数值过大会溢出
/*a =a+ b;
b = a - b;
a = a - b;*/
//异或的方法(题目:不创建第三个变量实现两个变量数值之间的交换)
存在问题
1.可读性不强 2.效率不高
/*a = a ^ b;
b = a ^ b;
a = a ^ b;*/
printf("a=%d b=%d\n", a, b);
return 0;
}
练习:计算一个整数二进制中“1”的个数
int main()
{
int i=0,count=0;
int a = 0;
printf("请输入数据:\n");
scanf("%d", &a);
//方法1:算法存在问题不能计算-1
//while (a)
//{
// if (a % 2 == 1)
// {
// i++;
// a = a / 2;
// }
//}
for (i = 0; i < 32; i++)
{
if ( 1==(a >> i & 1) )
{
count++;
}
}
printf("%d\n", count);
return 0;
}
sizeof()用法:计算变量所占空间的大小
int main()
{
int a = 10;
printf("%d\n", sizeof(a));
return 0;
}
int main()
{
short s = 0;
int a = 10;
printf("%d\n", sizeof(s = a + 5));//sizeof()不参与运算
printf("%d\n", s);
return 0;
}
按位取反的应用场景
int main()
{
int a = 11;
a = a | (1 << 2);
printf("%d\n", a);
a = a & (~(1 << 2));
printf("%d\n", a);
return 0;
}