OVH Cloud OVH Cloud

Noyeux Joël à tous ...

62 réponses
Avatar
Pierre Maurette
/* Happy XMas in C, Ansi-style */
/*
* Send XMas wishes to every body
* Adresse des voeux de Noël à la cité d'Évry
*
*/

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
puts("Happy Christmas every body !");
return EXIT_SUCCESS;
}

--
Pierre Maurette

2 réponses

3 4 5 6 7
Avatar
loufoque

Heureusement, ce ne sont pas les 'personnes lambda' qui font tourner le
monde, mais les gens formés...


Si seulement c'était vrai...

Avatar
Jean-Marc Bourguet
Emmanuel Delahaye writes:


? Sur un tas de DSP, et m^me les plus récents, un byte vaut 16 ou 32
bits...

J'avoue avoir remarqué ce phénomène récemment et ça m'a semblé une

aberration, étant donné que dans l'esprit d'une personne lambda un byte
c'est un octet soit 8 bits.


Ben non, pourquoi ? Une personne connaisssant les bases de
l'informatique sait qu'un byte est plus petit objet
adressable d'une architecture donnée.


La définition classique c'est un caractère. C'est
d'ailleurs aussi la définition du C. Oui, elle impose en
plus la possibilité d'avoir un pointeur vers les bytes, mais
rien n'empèche que ce soit une structure "pointeur vers un
mot, indice du caractère dans le mot" que l'architecture ne
connaît pas. Si ce n'est pas le choix fait par tes
architectures de DSP favorite, c'est d'ailleurs
vraissemblablement parce qu'on y utilise tellement peu de
caractères que ça ne vaut pas la peine d'introduire cette
complexité mais j'ai l'impression que si on devait y traiter
des IO de caractères, on verrait pas mal de problèmes
pratiques résultant de ce choix.

D'ailleurs, il y a un certain nombre d'architecture où ta
définition de byte le rendrait d'ailleurs équivalent au bit
(trois exemples qui me viennent en tête: IBM Stretch,
PDP-10, 8051; les deux premières avaient des "bytes de
tailles variables" et la dernière un byte de 8 bits; la
structure mémoire du 8051 est d'ailleurs assez
intéressante).

Classiquement, il y avait deux types de machines: celles
adressables par byte et celles adressables par mot. Les
premières destinées aux charges "commerciales" où les
manipulations de caractères joue un rôle important et où les
calculs se faisaient en décimal sur des chaînes de
caractères, les secondes destinées aux charges
"scientifiques" où les manipulations de caractères ne jouent
pas un rôle prépondérant et les calculs se faisaient en
binaire sur des mots. Naturellement quand on a un espace
d'adresse de 256 K mots (ce qui est beaucoup à l'époque) de
60 bits mettre un caractère par mot est stupide, d'autant
plus qu'un jeu de caractères typique est un jeu 6
bits... donc on compacte les données même si on les
décompacte parfois temporairement (c'est vrai aussi pour les
autres données que les caractères) et il y a parfois des
instructions pour agir sur des sous-partie du mot de taille
fixe ou variable dans le cas au moins du Stretch et du
PDP-10 et le mot byte designe une de ces sous-parties.

A ma connaissance, la première architecture avec la
structure mémoire actuelle (adressable par byte mais avec
une structure de mots par dessus) est l'IBM 360... qui a des
bytes de 8 bits.

Pour revenir au C, les contraintes sur les noms externes
sont telles qu'on peut mettre un nom externe encodé avec un
jeu de caractère 6 bits dans un mot de 36 bits...

A+

--
Jean-Marc
FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org



3 4 5 6 7