Hex 十六进制角色系统

Hex 十六进制角色系统,hex,Hex,我有以下角色和号码: 0x1 - Employee | 0x2 - Pensioner | 0x4 - RoleOne | 0x10 - RoleTwo | 0x20 - RoleThree | 0x80 - RoleFour | 0x100 - RoleFive | 0x1000 - Administrator 现在我有了十进制数字4353(代表角色employee、rolefive和administrator) 我的问题是,使用哪种技术可以从我的十进制数字4353中提取这些角色?您可以认为

我有以下角色和号码:

0x1 - Employee |
0x2 - Pensioner |
0x4 - RoleOne |
0x10 - RoleTwo |
0x20 - RoleThree |
0x80 - RoleFour |
0x100 - RoleFive |
0x1000 - Administrator
现在我有了十进制数字4353(代表角色employee、rolefive和administrator)


我的问题是,使用哪种技术可以从我的十进制数字4353中提取这些角色?

您可以认为这些“角色”中的每一个都由一个特定的位表示,例如,
Employee=0x1=bit 0
Pensioner=0x2=bit 1
,等等。因此,您可以使用位运算符来测试每个“角色”,例如

请注意,这假定使用类C运算符,其中
&
表示“按位AND”。您首选的编程语言可能有不同的运算符,甚至有执行此操作的函数

if ((person & Employee) != 0)
    // person has Employee bit set
if ((person & Pensioner) != 0)
    // person has Pensioner bit set
// ...