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

Odpowiedz Nowy wątek
2014-12-14 12:24
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;
}

Pozostało 580 znaków

2014-12-14 12:40
0

Przesuwasz iterator, a nie wartość.


Pozostało 580 znaków

2014-12-14 13:23
0

Jak przesunąć wartość ?

Pozostało 580 znaków

2014-12-14 13:29
0

A jak pobrałbyś wartość?


Pozostało 580 znaków

2014-12-14 13:39
0

tab1[i]=

edytowany 1x, ostatnio: Bar0, 2014-12-14 13:39

Pozostało 580 znaków

2014-12-14 13:49
0

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


Pozostało 580 znaków

2014-12-14 14:24
0

a=tab[i] ?

Pozostało 580 znaków

2014-12-14 14:27
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.


Pozostało 580 znaków

2014-12-14 14:29
0

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

edytowany 1x, ostatnio: Bar0, 2014-12-14 14:29

Pozostało 580 znaków

2014-12-14 14:52
0

Indeksu czwartego*, tak.


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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