• 位运算实例讲解


    1.题目:学习使用按位与 &。

    程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 。

    程序源代码:

    1. #include <stdio.h>
    2. int main()
    3. {
    4. int a,b;
    5. a=077;
    6. b=a&3;
    7. printf("a & b(decimal) 为 %d \n",b);
    8. b&=7;
    9. printf("a & b(decimal) 为 %d \n",b);
    10. return 0;
    11. }

     以上实例输出结果为:

    a & b(decimal) 为 3

    a & b(decimal) 为 3


    2. 题目:学习使用按位或 |。

    程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 。

    程序源代码:

    1. #include<stdio.h>
    2. int main()
    3. {
    4. int a,b;
    5. a=077;
    6. b=a|3;
    7. printf("b 的值为 %d \n",b);
    8. b|=7;
    9. printf("b 的值为 %d \n",b);
    10. return 0;
    11. }

    以上实例输出结果为:

    b 的值为 63

    b 的值为 63


    3.题目:学习使用按位异或 ^。

    程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 。

    程序源代码:

    1. #include <stdio.h>
    2. int main()
    3. {
    4. int a,b;
    5. a=077;
    6. b=a^3;
    7. printf("b 的值为 %d \n",b);
    8. b^=7;
    9. printf("b 的值为 %d \n",b);
    10. return 0;
    11. }

    以上实例输出结果为:

     b 的值为 60

    b 的值为 59


    4.题目:学习使用按位取反~。

    程序分析:~0=-1; ~1=-2;

    程序源代码:

    1. #include <stdio.h>
    2. int main()
    3. {
    4. int a,b;
    5. a=234;
    6. b=~a;
    7. printf("a 的按位取反值为(十进制) %d \n",b);
    8. a=~a;
    9. printf("a 的按位取反值为(十六进制) %x \n",a);
    10. return 0;
    11. }

    以上实例输出结果为:

     请输入整数:
    a 的按位取反值为(十进制) -235 
    a 的按位取反值为(十六进制) ffffff15


    5.题目:取一个整数 a 从右端开始的 4~7 位。

    程序分析:可以这样考虑:

    (1)先使 a 右移 4 位。

    (2)设置一个低 4 位全为 1,其余全为 0 的数,可用~(~0<<4)

    (3)将上面二者进行 & 运算。

    1. #include <stdio.h>
    2. int main()
    3. {
    4. unsigned a,b,c,d;
    5. printf("请输入整数:\n");
    6. scanf("%o",&a);
    7. b=a>>4;
    8. c=~(~0<<4);
    9. d=b&c;
    10. printf("%o\n%o\n",a,d);
    11. return 0;
    12. }

    以上实例输出结果为:

     请输入整数:
    36
    36
    1

  • 相关阅读:
    leetcode-10-[150]逆波兰表达式求值 [239]滑动窗口最大值[347]前k个高频元素
    Java错题归纳day17
    argparse模块介绍
    Yaml文件浅讲
    TreeUtils工具类一行代码实现列表转树 实战Java8 三级菜单 三级分类 附视频
    【免费】中国电子学会2024年03月份青少年软件编程Python等级考试试卷一级真题(含答案)
    Java项目:SSM智能制造车间管理系统
    RabbitMQ 入门案例项目
    我是如何构建自己的笔记系统的?
    lil-gui
  • 原文地址:https://blog.csdn.net/m0_52892985/article/details/125566812