交换两个变量的值,不使用第三个变量
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//交换两个变量的值,不使用第三个变量
int main() {
//加减法-可能会溢出
int a = 3;
int b = 5;
a = a + b;
b = a - b;
a = a - b;
printf("a=%d b=%d\n", a, b);
printf("--------------\n");
//异或法
int a2 = 4;
int b2 = 6;
a2 = a2 ^ b2;
b2 = a2 ^ b2;
a2 = a2 ^ b2;
printf("a=%d b=%d\n", a2, b2);
return 0;
}
a=5 b=3
--------------
a=6 b=4
统计num的补码中有几个1
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//统计num的补码中有几个1
int main() {
int num = 0;
int count = 0;
scanf("%d", &num);
/*
while (num) {
if (num % 2 == 1)
count++;
num = num / 2;
}
*/
int i = 0;
for (i = 0; i < 32; i++) {
if (1 == ((num >> i) & 1))
count++;
}
printf("%d\n", count);
return 0;
}
15
4
~操作符
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a = 11;
a = a | (1 << 2);
printf("%d\n", a);
a = a & (~(1 << 2));
printf("%d\n", a);
return 0;
}
15
11