栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言位运算应用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言位运算应用

用一个无符号的整形的每一位代表一个任务,1代表任务完成,0代表任务未做;


#include
#define BIT(x) (1<<(x)) //带参数的宏定义,编译与处理后,
                        //代码里BIT(0)===(1<<(0))1左移0位
                        //BIT(1)===(1<<(1))1左移1位
                        //BIT(2)===(1<<(2))1左移2位
  
                      //每左移一位相当于*2,BIT(0)=1,BIT(1)=2,BIT(2)=4。。。
enum Enumtask {
    Etask1 = BIT(0),//1
    Etask2 = BIT(1),//10
    Etask3 = BIT(2),//100
    Etask4 = BIT(3),//1000
    Etask5 = BIT(4),//10000
    Etask6 = BIT(5),//100000
    Etask7 = BIT(6),//1000000
    Etask8 = BIT(7),//10000000
    Etask9 = BIT(8),//100000000
    Etask10 = BIT(9),//100000000
};

unsigned int task = 0;//刚开始所有任务都未执行。

int main()
{
    if (task & Etask7)//按位与,Etask=1000000,如果task第七位为1,则结果为1,否则结果为0
    {
        printf("任务7已经做过了n");
    }
    else
    {
        //执行任务7
        printf("任务7未完成,执行任务7n");
        task |= Etask7;//标记任务7执行完成
    }
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297326.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号