0
を使用してバイトに7ビットを置く私は、ループを使用して、バイト(ビット単位)に7ビットを置くしようとしている:がループ
unsigned char bytetosend;
unsigned char y[] = { 0x7f };
int x = 0;
int i;
int main()
{
for (i = 0; i < 8; i++)
{
bytetosend = (y[x] & 0x01);
bytetosend >>= 1;
y[x] >>= 1;
}
printf("the out is %x", bytetosend);
}
が、なぜ出力0はありますか?
:
次に、あなたがでそれを行うことができますか? bytetosendの? –
@SalmaKHaled実際には、左にシフトすると、 'bytetosend'のMSBで' y [x] 'のLSBになります。私の編集されたポストを参照してください。 –
お勧め '(unsigned char)(1 << i)' ==>'((unsigned char)1 << i) ' –