《c语言位运算说明加举例》由会员分享,可在线阅读,更多相关《c语言位运算说明加举例(9页珍藏版)》请在金锄头文库上搜索。
1、请记住: 计算机存储的是源码 但是在运算的时候使用 补码进行运算-89 按两字节来运算 先得到二进制的数 0x59 -b 0101 1001 源码 1000 0000 0101 1001 反码 符号位不变,其他位按位取反 1111 1111 1010 0110 补码 +1 1111 1111 1010 0111 再把这个数取回源码 先得到反 1000 0000 0101 1000 再得到补+1 得到源 1000 0000 0101 1001n_b = ayub b = o_a; n_a = a b = ayub n_b = ayub o_a = o_b; 上面 ayub的意思是 ab的区别 右
2、移 大多数情况下 正数右移一位最前一位补0 负 数最前面一位补1-2 1 1000 0000 0000 0010 1111 1111 1111 1101 1111 1111 1111 1110 这是补码1111 1111 1111 1111 补码向左移一位 1000 0000 0000 0001 -1点亮某一位 用 | 如: 0 - 31位 0111 0011 1100 10000000 0000 0000 0100 | 0111 0011 1100 0100 这样第2位就置一了 不影响其它位a |= 4; a |= 1 2; a |= 1 n; 第N 位置一 a 第N 位清0看看某一位是0还是1 if(a & 1 n) 为真就是非0 为假就是0