我有这个角色& Hexnumbers:
0x1 - Employee |
0x2 - Pensioner |
0x4 - RoleOne |
0x10 - RoleTwo |
0x20 - RoleThree |
0x80 - RoleFour |
0x100 - RoleFive |
0x1000 - Administrator
现在我有十进制数4353(代表角色employee,rolefive& administrator)。
我的问题是我可以使用哪种技巧从我的十进制数4353中获取这些角色?
答案 0 :(得分:0)
您可以将每个“角色”视为由特定位表示,例如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的运算符,其中&
表示“按位AND”。您首选的编程语言可能具有不同的运算符,甚至可能具有执行此操作的功能。