Structure et mémoire

Discutez d'informatique ici !
lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

structure et mémoire

par lulubibi28 » 19 Déc 2013, 11:34

Bonjour,

L'unité élementaire est le bit , et chaque unité a une adresse .

_Un bit a deux états : 0 et 1 . Est-ce que le bit prend déjà 2 cases dans la mémoire ?

_Une mémoire de 100 bits permet de stocker 12 caractères sur 8 bits . Dans le tableau , le 12ème caractère désigne 11 , puisque que çà commence à 0 ? Donc cela correspond à <001+011+011+01> ?

_Ensuite , on parle de la mémoire qui est calibrée en octects , ayant la méme taille (identique) .Là ,on suppose que leurs tailles sont identiques.

La taille , c'est le nombre de caractères ou de cases ou un regroupement ?




_La position relative de la donnée recherchée est calculée à partir de son indice I, de la taille des composantes T, de leur nombre N. La formule générale, pour un vecteur comme celui que nous avons vu, appelé vecteur à une dimension, est : Si I < N, position-relative = ((I-1) * T) + 1

un tableau tel que [0|1|0] [0|0|1] [0|1|1] :

_il y'a trois composantes , d'espace unitaires 3 donc T = 3 .

_L'indice représente quoi ? la position , le chiffre ? là je vois que c'est écrit en binaire .

_ le nombre N désigne quoi ?

_Comment faire pour arriver à [0|0|1] ? :mur:


PS: fatar_error m'a expliqué avec l'adresse absolue mais j'ai toujours pas saisi avec l'adresse relative . :marteau:



Avatar de l’utilisateur
messinmaisoui
Habitué(e)
Messages: 1897
Enregistré le: 24 Oct 2007, 13:52
Localisation: Moselle (57)

par messinmaisoui » 19 Déc 2013, 13:40

lulubibi28 a écrit:L'unité élementaire est le bit , et chaque unité a une adresse .

_Un bit a deux états : 0 et 1 . Est-ce que le bit prend déjà 2 cases dans la mémoire ?

_Une mémoire de 100 bits permet de stocker 12 caractères sur 8 bits . Dans le tableau , le 12ème caractère désigne 11 , puisque que çà commence à 0 ? Donc cela correspond à ?

_Ensuite , on parle de la mémoire qui est calibrée en octects , ayant la méme taille (identique) .Là ,on suppose que leurs tailles sont identiques.

La taille , c'est le nombre de caractères ou de cases ou un regroupement ?


voici mes indications ...

- 1 bit = 1 case mémoire

- là je vois pas ...ce que ça représente :hein2:
?

Note Sur 8 bits on peut stocker 2^8 caractères ex : http://www.asciitable.com/

- La mémoire en octets : 1 octet = 1 byte = 8 bits
Mon avatar me fait peur, est-ce normal docteur ?

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 19 Déc 2013, 14:34

messinmaisoui a écrit:voici mes indications ...

- 1 bit = 1 case mémoire

Faire du bit une case mémoire peut préter à confusion : on ne peux pas adresser directement un bit, la plus petite quantité de mémoire adressable est le byte, en général c'est un octet. Ensuite des langages permettent d'accéder directement au bit (avec les champs de bits en C par exemple).
Un bit prend la valeur 0 ou 1 (suivant peut-être le potentiel affecté à cette case, mais là je ne suis sur de rien :hum: ).


Pour l'adresse absolue, je pense que fatal_errorl voulait dire un déplacement à partir du début de la mémoire globale de la machine, alors que pour l'adresse relative, c'est un déplacement à partir de l'endroit où tu te trouves.
Supposons qu'un tableau aient une adresse absolue dans la mémoire.
Si tu veux l'élément d'indice 3 dans le tableau, tu va d'abord à l'adresse absolue du tableau pui tu te déplaces de 3 fois la taille d'un élément
adresse absolue tab[3] = adresse absolue tab + adresse relative tab[3]
adresse relative tab[3} = 3 * taille d'un élément de tab.

Avatar de l’utilisateur
messinmaisoui
Habitué(e)
Messages: 1897
Enregistré le: 24 Oct 2007, 13:52
Localisation: Moselle (57)

par messinmaisoui » 19 Déc 2013, 14:49

joel76 a écrit:Faire du bit une case mémoire peut préter à confusion : on ne peux pas adresser directement un bit

oui, tu as raison, effectivement concernant ce vocabulaire, j'ai répondu trop vite !
Mon avatar me fait peur, est-ce normal docteur ?

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 19 Déc 2013, 16:12

un tableau tel que [0|1|0] [0|0|1] [0|1|1] :

Les indices commencent t-ils par zéro ? Quel est la différence avec un élément ou composante ?

si zéro , l'indice 3 serait ici :
[0|1|0] [0|0|1] [0|1|1]
indice 0 1 2 3 4 5 6 7 8

Mais je peux pas faire l'exercice , il y'a pas l'adresse absolue tab ?

Sinon , quand tu dis ""adresse relative tab[3} = 3 * taille d'un élément de tab.""
Ceci me fait penser à une sorte de translation(en math) puisque T=3 .

Vous connaissez un tuto sur l'histoire du calcul des adresses ,je bloque depuis un mois sur cela :cry:

Est-ce qu'une donnée ne contient que des 0 et des 1 ?


Merci en tout cas pour votre aide !

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 19 Déc 2013, 18:59

Un byte ne contient effectivement que des 0 ou 1. Ensuite pour faciliter l'utilisation de l'octet on procède au codage de 2 quartets en base 16.
Il faut bien penser qui suivant le contexte, un même octet pourra être interprété de différentes manières.

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 19 Déc 2013, 19:40

joel76 a écrit:Un byte ne contient effectivement que des 0 ou 1. Ensuite pour faciliter l'utilisation de l'octet on procède au codage de 2 quartets en base 16.
Il faut bien penser qui suivant le contexte, un même octet pourra être interprété de différentes manières.


Oui , en fonction du type des données : caractère, nombre , ensemble de données .

Cependant , çà se complique quand on te dit dans un exo , que l'entéte d'un vecteur commence à une certaine adresse ...

V 7 c 8 L u n d i M a r d i
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
1 2 3 4 5 6 7 8 9 10 11 12 13

La 3ème ligne est la représentation interne du vecteur :

L'ensemble I dépend de l'ordre des élements, et T = 8 ,si on prends le 2ème jour de la semaine : son indice est 2 ,
d'où (2-1)*8+1=9 .

Mais peut t-on calculer l'adresse relative de la première ligne qui commence à partir de l'adresse 11 ? :doh:

Bonne soirée :we:

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 20 Déc 2013, 09:25

Je ne comprends pas ce que tu veux dire:
L'ensemble I dépend de l'ordre des élements, et T = 8 ,si on prends le 2ème jour de la semaine : son indice est 2 ,
d'où (2-1)*8+1=9 .
Si on prend le deuxième jour de la semaine, son indice devrait être 1 puisqu'on débute à 0 (pense au C).

Mais peut t-on calculer l'adresse relative de la première ligne qui commence à partir de l'adresse 11
Je n'ai pas toutes les données de l'exercice, (en particulier T est-il un tableau ?) mais que représente 11 ?
Un déplacement par rapport au début du tableau ? dans ce cas c'est son adresse relative.
Si 11 est une adresse absolue, alors comme T = 8 (je suppose que c'est l'adresse absolue du tableau) alors l'adresse relative est 11-8 = 3.

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 20 Déc 2013, 10:21

joel76 a écrit:Je ne comprends pas ce que tu veux dire: Si on prend le deuxième jour de la semaine, son indice devrait être 1 puisqu'on débute à 0 (pense au C).

Je n'ai pas toutes les données de l'exercice, (en particulier T est-il un tableau ?) mais que représente 11 ?
Un déplacement par rapport au début du tableau ? dans ce cas c'est son adresse relative.
Si 11 est une adresse absolue, alors comme T = 8 (je suppose que c'est l'adresse absolue du tableau) alors l'adresse relative est 11-8 = 3.


T est en fait la taille des composantes et se calcule à partir de la plus grande : 8 octets, comme dans dimanche .
Les noms des jours de la semaine peuvent être enregistrés dans un vecteur de 7 composantes ; la taille des composantes se calcule à partir de la plus grande : 8 octets, comme dans dimanche, à interpréter comme des caractères (c) ; il est inutile d'indiquer la taille de l'ensemble, puisqu'elle peut être calculée (7*8, soit 56 octets) ; la représentation interne, à supposer que l'en-tête se trouve à l'adresse 11 de la mémoire (et comme par hypothèse nous avons déjà supposé que l'en-tête précède la donnée), ressemblerait à ceci :
Code: Tout sélectionner
V    7    c    8    L    u    n    d    i             M    a    r    d    i             M    e    r    c    r    e    d    i    J    e    u    d    i          
11    12    13    14    15    16    17    18    19    20    21    22    23    24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40    41    42    43    44    45    46
            1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22    23    24    25    26    27    28    29    30    31    32


La troisième ligne contient les adresses internes au vecteur. Comment trouver la troisième composante ? Il suffit de sauter les composantes précédentes (deux de 8 octets) et d'aller à la case suivante : le nom du troisième jour de la semaine commence au 17e octet (2*8+1) depuis le début des données (31e octet de la mémoire). À partir de l'adresse 72 figurent d'autres informations, appartenant à d'autres données. La fin de la représentation interne du vecteur pourrait ressembler à ceci :
Code: Tout sélectionner
V    e    n    d    r    e    d    i    S    a    m    e    d    i          D    i    m    a    n    c    h    e    &    a    b    c    d    e
47    48    49    50    51    52    53    54    55    56    57    58    59    60    61    62    63    64    65    66    67    68    69    70    71    72    73    74    75    76
33    34    35    36    37    38    39    40    41    42    43    45    45    46    47    48    49    50    51    52    53    54    55    56       


PS : Par rapport au cours , on nous demande de travailler sous linux et pas en C .Mais est-ce que les indices fonctionnent de la même manière ?

Mais voilà la formule du cours :
Si I < N, position-relative = ((I-1) * T) + 1

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 20 Déc 2013, 11:25

PS : Par rapport au cours , on nous demande de travailler sous linux et pas en C .Mais est-ce que les indices fonctionnent de la même manière ?

Ça n'a rien à voir, Linux est un OS et C un langage. Cependant, Linux est écrite en très grande partie en C, donc ce qui est vrai pour C l'est aussi en très grande partie pour Linux, donc pour les indices, le premier élément d'un tableau est numéroté 0.
Il y a quelque chose que je ne comprends pas : tu me dis que le troisième jour de la semaine commence à l'indice 17, c'est mardi qui est effectivement le troisième jour de la semaine française, mais le deuxième élément de ton tableau.
A quoi corresponde le 3 octet 'c' dans
Code: Tout sélectionner
V    7    c    8    L    u    n    d    i             
11    12    13    14

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 20 Déc 2013, 11:34

joel76 a écrit:Ça n'a rien à voir, Linux est un OS et C un langage. Cependant, Linux est écrite en très grande partie en C, donc ce qui est vrai pour C l'est aussi en très grande partie pour Linux, donc pour les indices, le premier élément d'un tableau est numéroté 0.
Il y a quelque chose que je ne comprends pas : tu me dis que le troisième jour de la semaine commence à l'indice 17, c'est mardi qui est effectivement le troisième jour de la semaine française, mais le deuxième élément de ton tableau.
A quoi corresponde le 3 octet 'c' dans
Code: Tout sélectionner
V    7    c    8    L    u    n    d    i             
11    12    13    14


En fait , là c'est le vecteur de l'entète , et le 'c' désigne juste que c'est un caractère (et là des lettres) .
Sinon dans le tableau , oui mardi est le deuxième élément du tableau .

Ce qui me tracasse , c'est que méme l'entété a une adresse , et je sais pas comment en tenir compte ??
Il y'a comme deux adresses dans la mémoire : une interne en rapport au vecteur , et une dans la mémoire en gros .

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 20 Déc 2013, 12:24

Oui, et pourquoi cela te tracasse-t-il ?
Pour aller chercher le contenu d'un élément d'un tableau, on connait l'adresse du tableau et l'adresse de l'élément à partir du début du tableau, je ne vois pas où est la difficulté.
Quand tu vas à un numéro de rue, tu trouves le début de la rue, puis tu te déplaces jusqu'au bon numéro, c'est un peu la même chose.

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 20 Déc 2013, 19:05

en fait ,j'arrive pas à appliquer la formule du cours . :triste:
Je confonds l'adresse absolue et l'adresse relative .Je sais que l'adresse ,çà correspond à la position d'une donnée dans la mémoire .
Par exemple , le logiciel word(éditeur de texte) , il y'a comme données : des caractères , des chiffres ,des opérateurs et donc plusieurs adresses .C'est possible de retrouver l'adresse de la donnée lettre 'A' ?

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 20 Déc 2013, 19:58

Par exemple , le logiciel word(éditeur de texte) , il y'a comme données : des caractères , des chiffres ,des opérateurs et donc plusieurs adresses .C'est possible de retrouver l'adresse de la donnée lettre 'A' ?

Ouh la, tu es complètement perdue.
La mémoire globale (RAM) c'est comme une ville, le début d'une rue à une adresse absolue, à partir du début de la rue tu as une adresse relative, par exemple le numéro 3.
Le caractère 'A' est situé plusieurs fois dans la mémoire, une/plusieurs fois pour chaque fois qu'il apparait dans un mot.

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 20 Déc 2013, 20:44

C'est çà le problème ,quand on utilise pendant des années le sytème windows sans savoir comment la machine roule.


Sinon , là c'est en dehors de l'exo :

1 octect = 8 bits

Supposons qu'on représente un nombre comme un vecteur de chiffres décimaux(de 0 à 9) , sur 16 bits;il faut 4 bits pour chaque chiffre , pourquoi ?

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 20 Déc 2013, 21:02

1 octect = 8 bits

Supposons qu'on représente un nombre comme un vecteur de chiffres décimaux(de 0 à 9) , sur 16 bits;il faut 4 bits pour chaque chiffre , pourquoi ?

se simplifie en :
pourquoi il faut 4 bits pour chaque chiffre décimal.

Si tu prends 1 bit, tu peux faire deux chiffres:
0 -> 0
1 -> 1
Si tu prends 2 bits, tu peux faire 4 chiffres:
00 -> 0
01 -> 1
11 -> 2
10 -> 3
Combien peux tu faire de chiffres avec 3 bits, et avec 4 ?
la vie est une fête :)

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 21 Déc 2013, 15:30

fatal_error a écrit:se simplifie en :
pourquoi il faut 4 bits pour chaque chiffre décimal.

Si tu prends 1 bit, tu peux faire deux chiffres:
0 -> 0
1 -> 1
Si tu prends 2 bits, tu peux faire 4 chiffres:
00 -> 0
01 -> 1
11 -> 2
10 -> 3
Combien peux tu faire de chiffres avec 3 bits, et avec 4 ?



Merci :zen:


avec 3 bits , on peut faire 6 chiffres :

000 -> 0
001 -> 1
011 -> 2
010 -> 3
100 -> 4
101 -> 5


donc pour 4 bits , on peut faire 8 chiffres :hein: puissance de deux .

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 21 Déc 2013, 15:59

avec 3 bits , on peut faire 6 chiffres :
000 -> 0
001 -> 1
011 -> 2
010 -> 3
100 -> 4
101 -> 5

il t'en manque quelques un, cherche un peu plus!
la vie est une fête :)

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 22 Déc 2013, 10:00

fatal_error a écrit:il t'en manque quelques un, cherche un peu plus!


C'est bon , je pense avoir trouvé :we:

il manque : 110 -> 6
111 -> 7

donc pour 3 bits , on peut faire 8 chiffres .

et pour 4 bits , il faudra arriver à 1111 .

Sinon ,c'est possible de faire une formule à n bits ?

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 22 Déc 2013, 10:25

Avec 1 bit 2 nombres
Avec 2 bits 4 nombres
Avec 3 bits 8 nombres
On travaille en binaire ...

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite