std::bitset<16> BitsfromByteArray(const unsigned char *bytes,int len)
{
std::bitset<16> bits ;//= std::bitset<16>();
for (int i=0; i<len*8; i++)
{
if ((bytes[i/8]&(1<<(7-i%8))) > 0)
{
bits.set(i);
}
}
return bits;
}
unsigned char* BitstoByteArray(std::bitset<16> &bits)
{
assert(bits.size()%8 == 0);
int len=bits.size()/8;
unsigned char *bytes = new unsigned char[len];
for (unsigned j=0;j<len;++j)
{
bytes[j]=0;
}
for (int i=0; i<bits.size(); i++)
{
if (bits.test(i))
{
bytes[i/8] |= 1<<(7-i%8);
}
}
return bytes;
}
{
std::bitset<16> bits ;//= std::bitset<16>();
for (int i=0; i<len*8; i++)
{
if ((bytes[i/8]&(1<<(7-i%8))) > 0)
{
bits.set(i);
}
}
return bits;
}
unsigned char* BitstoByteArray(std::bitset<16> &bits)
{
assert(bits.size()%8 == 0);
int len=bits.size()/8;
unsigned char *bytes = new unsigned char[len];
for (unsigned j=0;j<len;++j)
{
bytes[j]=0;
}
for (int i=0; i<bits.size(); i++)
{
if (bits.test(i))
{
bytes[i/8] |= 1<<(7-i%8);
}
}
return bytes;
}