1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public static bool IsBitSet(byte pInput, int pPosition)
{
if (pPosition < 1 || pPosition > 8)
throw new ArgumentOutOfRangeException("pPositition n'est pas dans [1,8]");
byte mask = (byte)(1 << (pPosition - 1));
return (pInput & mask) == mask;
}
public static byte SetBit(byte pInput, int pPosition, bool pSet)
{
if (pPosition < 1 || pPosition > 8)
throw new ArgumentOutOfRangeException("pPositition n'est pas dans [1,8]");
if (pSet != IsBitSet(pInput, pPosition))
{
return (byte)(pInput ^ (1 << (pPosition - 1)));
}
else
return pInput;
} |
Partager