32 binary lamp design

/ *
Our club total of 32 lamps (bitset <32>) designing a lighting system, wherein the pool 8 lights, board games 8 lights, the bar region 8 lights, lounge 8 lamp
requires the following functions:
1: be controlled independently of each lamp
2: can be opened or closed by a disposable area all lights
3: light can be acquired punch in respective regions
4: the lamp can be disposable closed open open closed lamp
* /

The Code


#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  全部灯光控制------------------------

}

Published 42 original articles · won praise 19 · views 10000 +

Guess you like

Origin blog.csdn.net/weixin_37828719/article/details/105122886