Réponses aux questions du TP 9 codage

Convention d'écriture : (H) précédant un nombre veut dire que le nombre est écrit en hexadécimal et (B) qu'il est écrit en binaire.
A1. La plus grande valeur est 255 : il faut 1 octet par caractère
A2. De l'espace (3ème ligne première case) au tilde ~ (8 ème ligne avant dernière case)
A3. Ce sont les caractères d'usage courant : lettres de l'alphabet, chiffres, ponctuation. (ils sont suffisants pour tout écrire en anglais)
A4. A raison de 16 caractères sur 8 lignes, -1 (dernière ligne incomplète) : 16 x 8-1=127 . Il suffit donc de 7 digits pour écrire tous les codes ASCII standards.
A.5. Police Terminal
B1. Retour à la ligne : 13 (hexa:(H)0D) , retour au début de ligne : 10 (hexa:(H)0A)
B2. tabulation :code 9
B3. Le fichier rtf contient un en-tête assez long, précédent le texte proprement dit, ainsi que des indications de formatage (italique, gras, couleur....) à l'intérieur du texte. Toutes ces indications sont toutefois codées 'en clair' (et en anglais).
B4. le mot (ou le texte ) mis en italique est entouré des indicateurs \i et \i0 (début et fin de la mise en italique respectivement).
Pour mettre en gras : \b et \b0 (b pour bold) .
Pour souligner , \ul et \ulnone (ul pour underline) .

Les indications ci-dessous ne s'appliquent qu'à des bitmaps non compressés
CII1. Il y a deux possibilités seulement pour la couleur d'un point, noir ou blanc ; un digit suffit pour décrire un point puisqu'il peut prendre 2 valeurs, 0 ou 1.
CII2. 1octet=8bits , un octet décrit 8 points
CII3 800 x 600 = 480000 points. Un octet décrit 8 points, il faut donc 480000/8=60000 octets pour décrire cette image. 1 ko =1024 octets , cela fait 58,6ko
CII4.3 lignes et 14 octets.
CII50 = noir, 1 = blanc
CII6 : En binaire (B)10101010 ou (B)01010101 c'est à dire en hexa, (H)AA ou (H)55, ou encore 170 et 85 en décimal.
CII7 32 points = 4 octets binaires = 8 digits en hexadécimal.
CII7a. 00 00 00 00 pour 32 points noirs
CII7.b. FF FF FF FF pour 32 points blancs
CII7c. AA AA AA AA
CII7d. 55 55 55 55
CII8 En examinant les données du fichier Ligne01, on trouve une alternance de (H)FFFFFFFF et (H)00000000. Les points sont donc lus par lignes. S'ils étaient codés par colonne, on aurait toujours une alternance de 1 et de 0, donc un seul type d'octet dans tout le fichier : AA ou 55.
CII9 L'image de ligne01 commence par une ligne noire et finit par une blanche. Les données commencent par (H)FFFFFFFF (ligne blanche) et finissent par (H)00000000 (ligne noire). L'image est donc décrite de bas en haut : la première ligne est à la fin des données et la dernière au début.
CII10 Le fichier nb01 contient une alternance de lignes noires, de 32 points de large et 1 pixel de haut, et de lignes composée de 32 points blancs et noirs alternés. On lit dans le fichier , en hexa 00000000 (pour une ligne noire) et (H)AAAAAAAA , c'est à dire une suite de points noirs et blancs alternés commençant par un point blanc. Comme les lignes commencent par un point blanc et se terminent par un noir, on en déduit qu'elles sont décrites de gauche à droite (sinon on aurait des (H)55555555).
CIII1 Ce sont les codes des lettres B et M, pour 'BitMap'.
CIII2 C'est la taille totale du fichier en octets (elle est également indiquée par Exafich)
CIII3.Le nombre de digits utilisé pour coder un point est le treizième octet de la deuxième ligne (le quatrième à partir de la droite)
CIV124=16 couleurs
CIV2 On peut décrire deux points avec un seul octet
CIV3 Il faut un digit hexadecimal par point, puisqu'un digit hexadecimal permet d'écrire 16 valeurs, de 0 à 15
CIV4 Il faut ½ octet par points donc 240000 octets, soit 240000/1024=234,375 Ko
CIV5
sombreclair
Noir /gf OOOO (0) 1OOO (8)
gc/blanc O111 (7) 1111 (15)
bleu O1OO (4) 11OO (12)
rouge OOO1 (1) 1OO1 (9)
vert OO1O (2) 1O1O (10)
violet O1O1 (5) 11O1 (13)
ocre/jaune OO11 (3) 1O11 (11)
vert-bleu O11O (6) 111O (14)

CIV6 Le premier digit à gauche vaut 0 pour les couleurs sombres et 1 pour les couleurs claires.
CIV7 La lumière blanche est la superposition de radiations monochromatiques dont les longueurs d'onde couvrent tout le spectre visible, du bleu au rouge en passant par toutes les autres couleurs.
CIV8
On observe 3 types de chromophores : rouge, vert et bleu.
Blanc et gris : tous les chromophores sont visibles.
Vert, bleu, rouge : chromophores verts, bleus et rouges respectivement
Jaune et ocre : vert et rouge simultanément
Violet et rose : rouge et bleu simultanément
Bleu-vert clair (cyan) ou foncé : bleu et vert simultanément.
Ce codage trichromatique en rouge, vert, bleu (RVB), utilisé également par les téléviseurs, repose sur la façon dont notre oeil perçoit la couleur : il possède trois types de récepteurs de lumière, dont le maximum de sensibilité se situe respectivement dans le rouge, le bleu et le vert.
La couleur que nous percevons est due à la comparaison de l'énergie lumineuse perçue par chaque type de détecteur.
Lorsque les trois types de récepteur sont activés de la même manière, on voit du blanc ou du gris.
S'ils ne sont pas tous activés de la même façon, on voit des couleurs.

CIV9 Premier digit : luminosité Deuxième digit: chromophore bleu Troisième digit : chromophore vert Quatrième digit : chromophore rouge
Remarque : ce codage reprend la convention VGA. Il est utilisé par les logiciels courants pour le format 4 bits - 16 couleurs. Cependant un logiciel graphique élaboré peut proposer un codage différent .
CV1224=16 777 216 couleurs .
CV2Il faut trois octets par point soit 800*600*3=1,44.106 de points, soit 1,406Ko, ou 1,373 Mo
CV3 Blanc = FFFFFF (les trois chromophores complètement allumés). Noir = 000000 (tout éteint)
CV4 Pour faire un gris il faut que les trois chromophores soient allumés de la même façon, moins vivement que pour faire du blanc, donc que les trois octets décrivant un point aient la même valeur. Par exemple (en hexa) 404040 est un gris très foncé, A2A2A2 un gris moyen , E0E0E0 un gris clair.

CV5On a vu avec le codage 16 couleurs que le jaune résulte de la superposition du rouge et du vert (même si cela surprend ! ) donc si FF0000 est le rouge et 00FF00 le vert, alors FFFF00 est le jaune.


D2 11100010+01110100=(1)010100110. La retenue ne rentre pas dans l'octet, le nombre écrit dans l'octet commence par 0 , il est donc positif et se lit 'normalement' :64+16+4+2 = 86.
10001100 + 00011110=10101010 commençant par 1, donc négatif de valeur absolue 01010101+1=01010110=86. Le résultat est donc bien -86.
D3. 01111111 , soit 127 en décimal.
D4. 10000000+1=10000001
D5. L'opposé de 10000000 est 01111111+1=10000000. On retombe sur le même nombre. Il n'est donc pas évident d'attribuer une valeur à ce nombre : 128, ou -128 ?
D6. 10000000+01111111=11111111 nombre négatif dont l'opposé est 00000000+1=1. Le résultat de l'addition de 10000000 et de 01111111 (127) valant donc -1, on en déduit qu'il faut attribuer la valeur -128 à 10000000.
D7. On peut écrire 256 valeurs , allant de -128 à +127 : on en écrit donc exactement autant qu'en binaire 'ordinaire'.
  Questions
 
© 2004 Scientillula.net