# Convert 10bit to 16bit int

How can i convert 10bit value to 16 bit int in c#
###### Who is Participating?

Commented:
Hi again, I have answered the question under your previous question.. but to be exact:

1) Endianess is not applied to this example because it's 10-bit number (thus b10...b1 in any case)
2) try to read all the data in buffer (or alternatively the LCM of 10 and 16 bits = 80 bits = 8 bytes per buffer)
3) make a function:

public Boolean GetBit(int bitIndex, List<Byte> bitField)
{
return (bitField[bitIndex / 8] & (1 << (bitIndex % 8))) > 0;
}

4) go thru the buffer bits step by step:

public List<Int32> Convert10BitTo16Bit(List<Byte> inputBuffer)
{
Int32 actualValue = 0;
List<Int32> outputBuffer = new List<Int32>();

for (int a = 0; a < yourBuffer.Length * 8; a++)
{
// every ten bits store the actual 16-bit value
if (a != 0 && a % 10 == 0)
{
actualValue = 0;
}

// sum the current bit to our actual value
if (GetBit(a, inputBuffer))
{
actualValue += 1 << (9 - (a % 10));
}
}

return outputBuffer;
}

regards,
Kate
0

Author Commented:
Hi Kate I have graded your solution AA at first look. Because it seems to work. But when i tried to run it
i noticed that it does not work correctly.

1- it does not handle all the buffer you always got 1 member missing. that is
(int a = 0; a < yourBuffer.Length * 8) syntax it does not deal with last 10 bit
2-In conversion i think there is a problem.

Ozgur

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.