WItam
Mam bardzo proste zadanie, ale męczę się z nim od dwóch dni. Myślę, że robię jakiś prosty błąd, ale czasem się człowiek tak zatnie, że drugi musi po "popchnąć", stąd ten post. Mianowicie chcę sprawdzić stan poszczególnych bitów (0 lub 1) liczby ośmiobitowej. Mój kod znajduje się poniżej. Próbowałem napisać program "od zera", próbowałem na inne sposoby (w pętli, z flagami bitowymi itp.), ale nadal otrzymuje taki sam wynik.. Nie mam już pomysłów co jest nie tak.
Podając liczbę 11111111 otrzymuje wynik 1-1-0-0-0-0-0-0
Proszę o pomoc. Pozdrawiam
#include <stdio.h>
int main()
{
int liczba;
printf("Wprowadź ośmiobitową liczbę: ");
scanf("%d",&liczba);
if (liczba & 1 << 1)
{
printf ("1-");
}
else{
printf ("0-");
}
if (liczba & 1 << 2)
{
printf ("1-");
}
else{
printf ("0-");
}
if (liczba & 1 << 3)
{
printf ("1-");
}
else{
printf ("0-");
}
if (liczba & 0 << 4)
{
printf ("1-");
}
else{
printf ("0-");
}
if (liczba & 0 << 5)
{
printf ("1-");
}
else{
printf ("0-");
}
if (liczba & 0 << 6)
{
printf ("1-");
}
else{
printf ("0-");
}
if (liczba & 0 << 7)
{
printf ("1-");
}
else{
printf ("0-");
}
if (liczba & 0 << 8)
{
printf ("1-");
}
else{
printf ("0-");
}
}