笔记
2025-02-04 20:30:28
发布于:上海
9阅读
0回复
0点赞
#if 0
位运算 (bit) 二进制位
&& 逻辑与、或||、非 !
& 按位与
| 按位或
~ 按位取反
^ 按位异或
<< 按位左移
按位右移
1 Byte = 8 bit
1 KB = 1024 B
#endif
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n = 7, m = 14;
printf("%d&&%d = %d\n", n, m, n&&m); 	//逻辑运算 1
printf("%d&%d = %d\n", n, m, n&m); 		//位运算  0
/*
0111(7) 
&   1110(14)
0110(6)
*/
printf("%d^%d = %d\n", n, m, n^m); 	//按位异或 
/*
0111(7) 
^   1110(14)
1001(9)
*/
//	性质1:相同的数字异或的结果为 0
//	性质2:任何一个数字异或0的结果为 它本身
n = 1;
for (int i=1; i<=10; i++){
	printf("%d ", n<<i);
} 
cout<<endl;
//	10000
//	数字n左移x位,相当于放大了 2的x次方 倍
//	数字n右移x位,相当于缩小了 2的x次方 倍
//	(操作数)
//	单目运算符: i++, !flag, ~
//	三目运算符: (语句1)?(语句2):(语句3)
n = 5; 
printf("~%d = %d\n", n, ~n) ;
//	取反的计算方法: ~n = -n-1
/*
0101
int n = 5; (32bit)
 
0000 .... 0001
-1
1111 .... 1111
二进制码:
原码:1000 ... 0001 
反码:1111 ... 1110 (符号位不变,其他位取反) 
补码:1111 ... 1111 (反码+1)
符号位:二进制的最高位是符号位 
负数在计算机中的存储形式都是 补码。
正数的三码相同 
 
*/
return 0;
}
这里空空如也





有帮助,赞一个