十六进制角色系统
问题描述:
我有这个角色& Hexnumbers:十六进制角色系统
0x1 - Employee |
0x2 - Pensioner |
0x4 - RoleOne |
0x10 - RoleTwo |
0x20 - RoleThree |
0x80 - RoleFour |
0x100 - RoleFive |
0x1000 - Administrator
现在我有十进制数4353(代表角色的员工,rolefive &管理员)。
我的问题是用什么技术可以从我的十进制数4353中获得这些角色?
答
您可以将这些“角色”中的每一个视为由特定位表示,例如, Employee = 0x1 = bit 0
,Pensioner = 0x2 = bit 1
等。因此,您可以使用按位运算符来测试每个“角色”,例如,
if ((person & Employee) != 0)
// person has Employee bit set
if ((person & Pensioner) != 0)
// person has Pensioner bit set
// ...
注意,这里假设C-像运营商,其中&
表示 “按位与”。您喜欢的编程语言可能有不同的操作员,甚至可能有执行此操作的功能。