位运算知识和常用函数~
用简洁的方式给大家一点基础知识。
位运算常用知识:
-127
原 1111 1111
反 1000 0000
补 1000 0001
优先级 移位 >& > ^ > |
&与
1&1 = 1
10 0
00 0
^异或
11 0
10 1
00 0
|或
11 1
10 1
00 0
位运算常用函数【使用范围为:整型,32bit,-2147483648~2147483647。】
打印二进制数组:
使用方法:传入数组binary,里面是0和1,然后printf出来
void printBinary(int* b) { int count = 1; for (int i = 31;i >= 0;i--) { cout << b[i]; if (count++ % 4 == 0)cout <<" "; } }
二进制数组转换为十进制数:
使用范围为:整型,32bit,-2147483648~2147483647。
int getInt(int* b) { int num=0; for (int i = 30;i >= 0;i--) { num *= 2; if (b[i])num += 1; } if (b[31] == 1) { num = -2147483648+num; } return num; }
转换为二进制数组:
void getbBinary(int* b) { int n; printf("输入你要转换为二进制数组的数:"); scanf("%d", &n); if (n < 0) { n = n + 1;; for (int i = 0;i < 32; i++) { b[i] = 1; } for (int i = 0;i < 32 && n != 0;i++) { if (n % 2 != 0)b[i] = 0; n /= 2; } } }
pta上最近回顾二进制运算,正好做一期位运算,这些干货送给大家了ヽ( ̄ω ̄( ̄ω ̄〃)ゝ。
这期到这了谢谢大家Thanks♪(・ω・)ノ。