IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 简单位运算及游戏日常应用的位运算 -> 正文阅读

[C++知识库]简单位运算及游戏日常应用的位运算

本博文摘录自王建伟的《C++新经典》

1.位运算简介

1)按位与运算符”&”

  • 运算

全1才为1,否则为0

  • 举例

38 & 22 = 6

100110
&
010110

2)按位或运算符 “|“”

  • 运算

有1才为1

3)按位异或运算符“^”

  • 运算

同为0或同为1才为1,其余为0

4)取反运算符“~”

  • 运算

0变成1,1变成0

5)左移运算符“<<”

  • 运算

左移相当于乘2

6)右移运算符“>>”

  • 运算

右移一位,相当于除2

2.位运算的具体应用(例如玩家的日常任务是否完成)

  • 业务场景

表示玩家日常任务,比如有10个日常任务,如何表示玩家完成

  • 解决方案

用一个unsigned int task,4字节有32位字节表示就可以表示32个日常任务是否完成

  • 代码
#define BIT(x)  (1 << (x))       //带参数的宏定义,表示1向左移x位
enum EnumTask
{
	ETask1 	= BIT(0);			//1 =1		1
	ETask2 	= BIT(1);			//1 =2		10
	ETask3 	= BIT(2);			//1 =4		100
	ETask4 	= BIT(3);			//1 =8		1000
	ETask5 	= BIT(4);			//1 =32		10000
	ETask6 	= BIT(5);			//1 =64		10000
	ETask7 	= BIT(6);			//1 =128	100000
	ETask8 	= BIT(7);			//1 =256	1000000
	ETask9 	= BIT(8);			//1 =512	10000000
	ETask10 = BIT(9);			//1 =1024   100000000
};
unsigned int task = 0; 	//初始化游戏状态为0

if(task & ETask7)	   	//做过任务,对应位数为1	
{
	//任务做了
	printf("任务已经做了!\n");
}
else
{
	//任务还没做
	printf("任务还没做!\n");
	//现在去做任务7
	task = task | ETask ;//有1则为1
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 11:45:05  更:2021-09-30 11:46:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:57:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码