Dans la mémoire la valeur est comment ?

Salut à tous.
Dans la mémoire vive, on a:

  • adresse
  • valeur

J’ai lu que les deux est composé de nombre, j’aimerais savoir si ces nombres est en binaire ou des chiffres de 0 à 9 ?

Salut,

Et pourquoi pas en chiffres romains ?

Je te dirais que ce sont des composants classiques fonctionnant avec une logique deux états -> donc à la base c’est du binaire.

Partant de là, tu peux les représenter comme tu veux. En binaire, c’est vite lourd à gérer.
C’est pour ça qu’on utilise très régulièrement une représentation en hexadécimal (pratique car un caractère hexa est codé par 4 bits ; et ça reste lisible). Les adresses IPv4 sont généralement codées en décimal (4 valeurs allant de 0 à 255, ce qui représente une valeur codée sur 8 bits (un octet quoi)).

Donc, c’est comme tu veux, sachant que certaines représentations sont plus pratiques que d’autres (représenter un bus de données avec des nombres en base 7 par exemple, ce n’est pas judicieux (du tout), mais c’est possible).

[quote=“ggoodluck47”]Salut,

Et pourquoi pas en chiffres romains ?[/quote]
Il manque le zéro je pense… :mrgreen:

En fait, j’ai lu un cours sur le langage C
Il est écrit que l’adresse et la valeur est composé de nombre.
Et donne des exemples avec des milliers de nombres en valeur etc.

En fait c’est un peu question de logique.
Si tous les lettres etc sont convertie en nombre, ce qui veut dire que ces nombres vont être aussi convertie en binaire (vu que c’est en deux états) ?
Il aurait pu dire dans le cours que tous est convertie et stocker en binaire ?

Désolé si je comprends mal.
Merci

Re,

Ils ne sont pas convertis en binaire, ils sont binaires et convertis en chiffres, lettres et signes pour être vus par l’œil humain.

Alors c’est bien comme je penses.
Pour avoir à la base la version binairienne, il faut pouvoir rendre tout en nombre, pour cela, les lettres ont des représentants en nombre.

Pour exploiter les données il faut l’inverse, mais pour l’inverse, faut l’inverse :laughing:

Merci.

[quote=“kripteks”]En fait, j’ai lu un cours sur le langage C
Il est écrit que l’adresse et la valeur est composé de nombre.
Et donne des exemples avec des milliers de nombres en valeur etc.

En fait c’est un peu question de logique.
Si tous les lettres etc sont convertie en nombre, ce qui veut dire que ces nombres vont être aussi convertie en binaire (vu que c’est en deux états) ?
Il aurait pu dire dans le cours que tous est convertie et stocker en binaire ?

Désolé si je comprends mal.
Merci[/quote]
Le binaire est aussi une représentation. Un bit n’est pas à proprement parlé stocké en binaire (même si ça revient au même finalement).
On peut plus voir la chose comme un état physique (état de charge d’une capa par exemple, qui comme toute grandeur physique peut prendre une infinité de valeurs) auquel on attribue une signification de manière arbitraire (au delà de telle valeur, ça représente quelque chose, sous une autre valeur, ça représente autre chose).

Dans ta RAM, et pour pousser un peu plus loin dans ta logique, toutes les lettres sont stockées dans des capas chargées de diverses manières.

Hum c’est un peu plus subtile. Tout ce qui est dans la mémoire est du binaire c’est impossible d’y stocker autre chose, mais le lien entre la représentation binaire et la valeur logique n’est pas toujours la même. Le langage utilisé et/ou la bibliothèque que tu utilise peut faire ce qu’il veut. Par exemple en fortran chaque digit d’un nombre est codé sur un octet. Un caractère peut être encodé en ASCII, en UTF8, UTF16 ou autre.

[quote=“kripteks”]Salut à tous.
Dans la mémoire vive, on a:

  • adresse
  • valeur

J’ai lu que les deux est composé de nombre, j’aimerais savoir si ces nombres est en binaire ou des chiffres de 0 à 9 ?[/quote]
Les informations stockées en mémoire vive le sont par mots de 8,16,32,ou 64 bits.
Un bit c’est un chiffre binaire. Qui ne peut prendre que 2 valeurs : 0 ou 1.

En informatique généralement on compte en :
Base 2 : binaire
Base 8 : Octal
Base 16 : hexadécimal

Pas de chiffre 0 à 9 :wink:

Tu peux passer a l’aide de calcul de la base 2 à 8, à 16, et vice versa. Mais aussi passer a la base 10… (celui où tu comptes sur tes doigts :023 )

Si dans le cours il n’indique pas tout ca, c’est que ce n’est pas évident d’expliquer tout ca d’un coup…
Si tu veux apprendre à conduire, on ne va pas forcèment t’expliquer comment fonctionne le moteur :wink: pas en même temps en tout cas!
C’est pour aussi qu’il y a plusieurs bases, car le cerveau humain à du mal à maitriser tout ca! tu apprends le C, tout ca est important mais pas évident à expliquer dedans car il faut tout un cours pour l’expliquer… c’est pour ca que quand tu fais des études style DUT info ou école d’ingé, tu as des cours en simultané pour aborder tout ca, ca prends des semaines.
Du coup dans le cours que tu lis, il doit donner des bases, à toi de voir les cours du binaire, de l’héxa, voir octal… mémoire vive, etc… c’est important mais ca sera assez long et dur à comprendre :wink: mais ca en vaut la peine, car c’est très instructif et ca aide beaucoup dans la programmation! parceque ca aide à savoir comment manipuler.

Si tu as besoin d’aide pour convertir dans différentes bases, préviens moi, j’ai toujours aimé ca :049 :049 :049 :049

Mon soucis était orienté autrement.

Par exemple une base de donnée mysql:

  • on a deux cases dans la base: adresse et valeur.
  • l’adresse, ne peut être que (int) donc 0 à 9.
  • valeur, ne peut être que (int) donc 0 à 9.

Au final, si on veut ajouter des valeurs dans ces cases, on a pas d’autres choix que d’utiliser des nombres.

Mais d’un autre côté.
On aurait pu être plus permissive ou l’inverse:

  • adresse et valeur: seulement du binaire.
    Du coup, on aurait du faire une conversion:
  • lettre -> nombre -> binaire pour remplire les cases.

ou

  • adresse et valeur: texte
    Du coup, on peut utiliser directement tous ce qu’on veut.

Le point est que:

  • sachant qu’à la base tous est 0-1 dans le fond.
  • la préférence des cases (dans la mémoire), la valeur possible/choisi, est défini à quoi.

Donc sachant que la mémoire vive est composé en 8,16,32,ou 64 bits, etc.
Donc les choix à définir sont: le binaire, octal, hexa, etc.

Ton message est extrêmement confus…

Il semble que tu mélange :
[ul]
[li]ce qui est dans la mémoire physique : une série de bits organisée en byte de 8 bits et accessible via des mots de 8, 16, 32 ou 64 bits dans la majorités des architectures ;[/li]
[li]la représentation logique des données : des entiers, des chaines de caractère, des instructuions etc[/li][/ul]

Tu parle de MySQL quand tu utilise MySQL tu n’accède pas directement à la mémoire, c’est le processus mysqld et la bibliothèque qui te permet de retrouver tes données et eux ils vont charger les données en mémoire si elles n’y sont pas, les rechercher et te les fournir via la représentation qui va bien.

Tu parle de conversion, il ne s’agit pas de conversion mais de transtypage les données ne sont pas modifiée. En C par exemple tu peut très bien créer un caractère en lui donnant comme valeur son code ASCII. Tu manipule ses données via un langage ou une bibliothèque (qui te fourni du typage pour savoir ce que représente un espace mémoire).

Si tu n’a pas l’impression que je répond à ce que tu dis (il n’y a pas de question dans ton commentaire…), essaie de mettre tes idées en forme, de faire des phrases (pas que des listes à points) ça va déjà beaucoup t’aider à comprendre quelque chose.

En fait j’ai à peu près compris.
J’ai juste du mal avec les mots et les exemples.

Toute façon j’ai plusieurs cours (école) et langage (asm,c) qui parle à ce sujet en détails et bien largement, j’y verrais en profondeur.

Merci encore.

[quote=“kripteks”]En fait j’ai à peu près compris.
J’ai juste du mal avec les mots et les exemples.[/quote]
Il me faudrait un tableau et une crée (ou un stylo selon le tableau). :slightly_smiling:
Non dia ça ne fait pas le job…