十六进制角色系统

时间:2016-02-05 10:04:41

标签: hex

我有这个角色& Hexnumbers:

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

现在我有十进制数4353(代表角色employee,rolefive& administrator)。

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

1 个答案:

答案 0 :(得分:0)

您可以将每个“角色”视为由特定位表示,例如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的运算符,其中&表示“按位AND”。您首选的编程语言可能具有不同的运算符,甚至可能具有执行此操作的功能。

相关问题