十六进制角色系统

问题描述:

我有这个角色& Hexnumbers:十六进制角色系统

0x1 - Employee | 
0x2 - Pensioner | 
0x4 - RoleOne | 
0x10 - RoleTwo | 
0x20 - RoleThree | 
0x80 - RoleFour | 
0x100 - RoleFive | 
0x1000 - Administrator 

现在我有十进制数4353(代表角色的员工,rolefive &管理员)。

我的问题是用什么技术可以从我的十进制数4353中获得这些角色?

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

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

注意,这里假设C-像运营商,其中&表示 “按位与”。您喜欢的编程语言可能有不同的操作员,甚至可能有执行此操作的功能。