Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Civril

Obliczanie adresu komórki tablicy jednowymiarowej

Polecane posty

A więc to jest zadanie

Dane:

Adres bazowy = 25H

numer komórki = 3

typ danych = Integer

CellAdress=25 + 2 x 4= 33 , a 33 w hex daje wartość 21

Prowadzący twierdzi, ze poprawny wynik to 3Dhex, mi nasuwają się pytania:

Czemu wynik jest w hex skoro obliczenia są dec? Tak się po prostu podaje?

Czy adres bazowy 25h to wartość dec? Pytam o to wszystko bo wynik się nie zgadza z wynikiem od prowadzącego.

Link do komentarza
Udostępnij na innych stronach

Oj oj, prowadzący, czyli studia. No słabo to wygląda.

Przecież sam napisałeś 25H, czemu więc sumę z 8 traktujesz jak liczbę dziesiętną?

Wzory są dwa:

indeksujemy od zera (jak w C) - adres bazowy + N * rozmiar elementu

indeksujemy od 1 (jak w Pascalu) - adres bazowy + (N - 1) * rozmiar elementu

Dane:

Adres bazowy = 25H

numer komórki = 3

typ danych = Integer

Adres bazowy = 0x25 = 2 * 16 + 5 = 32 + 5 = 37,

N = 3 - niesprecyzowane jak indeksujemy tablicę, załóżmy, że od 0,

rozmiar elementu - integer - niesprecyzowane jaki system danych (Integer może mieć w zasadzie dowolną liczbę bajtów), załóżmy, że taki jak w win32, czyli 4.

Dziesiętnie

37 + 3 * 4 = 37 + 12 = 49

49 = 48 + 1 = 3 * 16 + 1 = 0x31

Szesnastkowo

0x3 * 0x4 = 0xC

0x25 + 0xC = 0x20 + (0x5 + 0xC) = 0x20 + 0x11 = 0x31

Skąd wynik 0x3D?

0x3D - 0x25 = 0x18

0x18 / 0x3 = 0x8

Integer ma 8 bajtów według prowadzącego.

Link do komentarza
Udostępnij na innych stronach

Dzieki wielkie za pomoc, te kretynskie bledy to raczej ze stresu i pospiechu.

edit: Prowadzacy dodal jeszcze, ze jak ktos poda inny wynik a uzasadni czemu jest inny i bedzie dobrze to zaliczy wiec chyba chodzilo mu o to, ze ktos moze przyjac int jako 4

edit2:

Wzory są dwa:

indeksujemy od zera (jak w C) - adres bazowy + N * rozmiar elementu

indeksujemy od 1 (jak w Pascalu) - adres bazowy + (N - 1) * rozmiar elementu

N = 3 - niesprecyzowane jak indeksujemy tablicę, załóżmy, że od 0,

To skoro od zera to nie powinno byc N=2?

No bo:

numer----> index

1----------> 0

2----------> 1

3----------> 2

Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...