Przesunięcie bitowe. Program wyświetla złe wartości tabeli.

0

Witam. Napisałem program który wyświetla wartości tabeli a następnie po wprowadzeniu adresu rozpatrywanego podaje wartość pierwotną a następnie przesuniętą o jeden bit w prawo lub w lewo dla danego adresu tabeli. Jednak program pokazuje głupoty niezgodne z założeniami. Proszę o pomoc.

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int tab1[11]={1,10,20,30,40,50,60,70,80,90,100};
  int a,b;
  printf("\n\n  Adres:  0   1   2   3   4   5   6   7   8   9   10\n");
  printf("Wartosc:");
  for(a=0; a<11; a++){
    printf("  %d",tab1[a]);
  }
  printf("\n\nWprowadz adres: ");
  scanf("%d",&b);
  printf("\n\nWartosc w adresie %d wynosi: %d", b, tab1[b]);
  printf("\n\nPrzsuniecie bitowe o 1 w prawo dla adresu %d wynosi: %d", b, tab1[b>>1]);
  printf("\n\nPrzsuniecie bitowe o 1 w lewo dla adresu %d wynosi: %d\n\n\n", b, tab1[b<<1]);

    return 0;
}
 
0

Przesuwasz iterator, a nie wartość.

0

Jak przesunąć wartość ?

0

A jak pobrałbyś wartość?

0

tab1[i]=

0

Nie, teraz coś chcesz przypisać. Jak pobrałbyś samą wartość?

0

a=tab[i] ?

0

Dlaczego w ogóle coś tam do czegoś przypisujesz?
Wartość z tablicy pobierzesz za pomocą tab[i], teraz musisz tę pobraną wartość przesunąć bitowo.

0

czyli przesunięcie bitowe wartości tabeli o 1 w prawo dla adresu 3 to tab[3]>>1 ?

0

Indeksu czwartego*, tak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1