首页 > 学院 > 开发设计 > 正文

7.3 位运算

2019-11-06 07:07:44
字体:
来源:转载
供稿:网友

1.位运算

&:与 如果 x = 1并且 y = 1,那么(x & y) = 1;否则 (x & y)= 0|:或 如果 x = 1 或者 y = 1,那么 (x | y)= 1;否则 (x | y)= 0~:取反 把0变成1,1变成0^:异或 如果 x == y,那么 (x ^ y)= 0;否则(x ^ y)= 1<<:左移 x << 1 等价于 x *= 2,左移后 右边补0>>:右移 x >> 1 等价于 x /= 2小于int的类型,以为以int的方式来做,结果是int对于unsigned类型,左边补0对于signed类型,左边补 最高位移位的位数不要用负数,没有定义这种行为:x << -2; // No!!#include<stdio.h>int main(int argc, const char *argv){ unsigned char c= 0xAA; PRintf(" c = %hhx/n", c); // c = aa printf("~c = %hhx/n", (char)~c);// ~c = 55 printf("~c = %hhx/n", (char)~c);// ~c = 55 return 0;}

2.输出一个数的二进制

#include<stdio.h>int main(int argc, const char *argv){ int number = 0xaa; unsigned int mask = 1u<<31; for(; mask; mask >>= 1){ printf("%d", number & mask ? 1 : 0);//00000000000000000000000010101010 } printf("/n"); return 0;}
上一篇:实验2:1

下一篇:关于斐波那契公约数

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表