2进制 32盏灯设计

/*
我们的俱乐部一共32盏灯(bitset<32>) 设计一个灯光系统, 其中台球8盏灯,桌游8盏灯,酒吧区8盏灯,休息区8盏灯
要求满足以下功能:
1:够独立控制每一盏灯
2:能够一次性打开或关闭一个区域的所所有灯光
3:能够获取各个区域的灯光打卡情况
4:能够一次性关闭打开的灯,打开关闭的灯
*/

上代码


#include <iostream>
#include <bitset>

using std::cout;
using std::cin;

//位运算 **** 作业题
// 控制1盏灯的情况 控制那盏灯  参数i为需要控制的是第几盏灯 参数default_dll_lamp 为当前灯光的情况
unsigned oneControlOpen(unsigned num, unsigned default_dll_lamp) {
	//unsigned num{ 0b00000000000000000000000000001000 }; num参数示例
	default_dll_lamp |=  num;
	
	return default_dll_lamp;
}
unsigned oneControlShut(unsigned num, unsigned default_dll_lamp) {
	//unsigned default_dll_lamp2{ 0b11111111111111111111111111110111 }; num参数示例
	default_dll_lamp &= num;
	
	return default_dll_lamp;
}
// 1字节8位 我们控制灯光只有2中状态 刚刚好使用16进制数F 和0

int main (){
	/*
		我们的俱乐部一共32盏灯(bitset<32>)  设计一个灯光系统, 其中台球8盏灯,桌游8盏灯,酒吧区8盏灯,休息区8盏灯
		要求满足以下功能:
		1:够独立控制每一盏灯
		2:能够一次性打开或关闭一个区域的所所有灯光
		3:能够获取各个区域的灯光打卡情况
		4:能够一次性关闭打开的灯,打开关闭的灯
	*/

	// 设定开灯为1 关灯为0 
	// 使用 unsigned  防止位运算出现负数0补1的意外情况
	
	unsigned default_dll_lamp{ 0b00000000001000000000000000000000 }; //默认灯光

	cout << "默认灯光状态:" << std::bitset<32>(default_dll_lamp) << char(10);
	//unsigned all_lamp{ 0b11111111111111111111111111111111 };

	//------------------------Before 单个灯光控制------------------------
	default_dll_lamp = oneControlOpen(0b1000, default_dll_lamp);
	cout << "开灯操作-当前灯光状态:" << std::bitset<32>(default_dll_lamp) << char(10);

	default_dll_lamp = oneControlShut(0b11111111111111111111111111110111, default_dll_lamp);
	cout << "关灯操作-当前灯光状态:" << std::bitset<32>(default_dll_lamp) << char(10);
	//------------------------End 单个灯光控制------------------------

	//------------------------Before 区域灯光控制------------------------

	//区域开关灯 参数改为16进制
	default_dll_lamp = oneControlOpen(0xFF, default_dll_lamp);
	cout << "区域开灯操作-当前灯光状态:" << std::bitset<32>(default_dll_lamp) << char(10);
	default_dll_lamp = oneControlShut(0xFFFFFF00, default_dll_lamp);
	cout << "区域关灯操作-当前灯光状态:" << std::bitset<32>(default_dll_lamp) << char(10);
	//------------------------End 区域灯光控制------------------------

	//------------------------Before 全部灯光控制------------------------
	default_dll_lamp = oneControlOpen(0xFFFFFFFF, default_dll_lamp);
	cout << "全部开灯操作-当前灯光状态:" << std::bitset<32>(default_dll_lamp) << char(10);

	default_dll_lamp = oneControlShut(0, default_dll_lamp);
	cout << "全部关灯操作-当前灯光状态:" << std::bitset<32>(default_dll_lamp) << char(10);
	//------------------------End  全部灯光控制------------------------

}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值