I have a function that convert a Byte to an 8 bit address and returns the bit on the location that is specified in the parameter.
The way it’s build now it works fine, but it’s pretty ugly in my opinion is there a way to do this with a method in math or something in that direction, I tried looking for another approach but didn’t came up with anything.
private bool ConvertByteToBitAddres(byte byteToConvert, int bitToReturn)
{
bool[] address = new bool[8];
int remaining = byteToConvert;
if (remaining > 128)
{
remaining = remaining - remaining;
address[7] = true;
}
if (remaining > 64 || remaining < 128)
{
remaining = remaining - remaining;
address[6] = true;
}
if (remaining > 32)
{
remaining = remaining - remaining;
address[5] = true;
}
if (remaining > 16)
{
remaining = remaining - remaining;
address[4] = true;
}
if (remaining > 8)
{
remaining = remaining - remaining;
address[3] = true;
}
if (remaining > 4)
{
remaining = remaining - remaining;
address[2] = true;
}
if (remaining > 2)
{
remaining = remaining - remaining;
address[1] = true;
}
if (remaining > 1)
{
remaining = remaining - remaining;
address[0] = true;
}
if (remaining == 0)
{
return address[bitToReturn];
}
throw new Exception();
}
Thanks in advance.
Use bitwise operations; for example:
Perhaps easier, though, is to just pass in the
maskrather thanbitToReturn.