Représentation des nombres entiers
1 octet bit bit. 31 24 23 16 15. 8 7. 0. Mot de données de 32 bits 4 bits. • Le codage du signe peut suivre différentes conventions. • + : 1011.
Transmission des données Introduction
binaire le bit le plus à droite et le bit de poids fort
8. Memoire et bus.pdf
Une mémoire stocke des mots de 8 bits (1 octet) et possède 216 adresses. Quelle est la taille totale de la mémoire en kilo-octets (Ko)?.
Polynésie septembre 2019
On envoie un octet au hasard. On suppose la transmission de chaque bit indépendante de la transmission des bits précédents. On admet que la probabilité qu'un
Transmission des données
Dans un nombre binaire la valeur d'un bit
Chapitre 3 Codage de linformation
Le terme bit (b minuscule dans les notations) signifie « binary digit » c'est-à-dire 0 ou Sur 8 bits (1 octet)
Bit Byte Octet ? Cest quoi un bit un octet
http://technostnazaire.free.fr/page25/styled-4/downloads-42/files/Bit%20Byte%20Octet.pdf
I Représentation binaire dun entier relatif
: Les entiers sont codés sur un octet ou un multiple d'un octet : 16 bits 32 bits… 1) Codage d'un entier relatif sur 8 bits. Le bit de poids le plus fort (à
Programmation C avancée 1cm Manipulation de bits
idem pour les types sur plusieurs octets. 16 bits. 32 bits. 01100100 octet de poids faible ... que la perte du bit de poids fort soit sensible mais.
Programmation C avanc
´ee
Manipulation de bits
Licence informatique 3
`emeann´eeUniversit
´e de Marne-la-Vall´eeLe binaire
I repr´esentation en base 2 :1286432168421 2 7262
52
42
32
22
12
001100100
=027+126+125+024+023+122+021+020 =64+32+4 =100Le binaire I premi`eres puissances de 2`a connaˆıtre par coeur I pratique pour d´etecter les valeurs sp´eciales (1023,4097, ...)
2 02 12 2232
42
52
62
71248163264128
2 8292
102
112
122
132
142
1525651210242048409681921638432768Poids fort / poids faible
I poids fort = grandes puissances de 2 I poids faible = petites puissances de 2011001002 7262
52
42
32
22
12
0bit de poids fortbit de poids faible
Poids fort / poids faible
I idem pour les types sur plusieurs octets16 bits32 bits011001001110100000100011110000100110010011000010
octet de poids fortoctet de poids faibleEntiers sign´es
I codage qui d´epend de l"impl´ementation ! I bit de poids fort = signe (peu utilis´e) :00000010= +2 en d´ecimal
10000010= -2 en d´ecimal
I probl`emes : - 0 a deux repr´esentations (00000000et10000000)
- l"addition ne marche pas :10000100+00000011=10000111(-4 + 3 = -7)Compl
´ement`a deux
I on prend la valeur absolue I on inverse les bits I on ajoute 1 en ignorant les d´epassements I exemple : -6 cod´e sur un octet6 = 00000110) 6 = 11111001
6+1 = 11111010)250
1intmain(intargc ,charargv [ ] )f
2printf ( "%dnn" , (unsigned char)(6));
3return0;
4g affiche bien 250 !Compl´ement`a deux
I l"addition fonctionne :11111100+00000011=11111111(-4 + 3 = -1)
I´ecriture unique de z´ero : 0 = -0
I -(-x) = x Compl´ement`a deux
I lors d"une conversion de type, une transformation est appliqu´ee
1intmain(intargc ,charargv [ ] )f
2charc=26;
3inti=c ;
4unsigned charuc=c ;
5unsigned intui=c ;
6printf ( "%d%d%u%unn" , c , i , uc , ui );
7return0;
8g donne nborie@perceval:~> ./test -26 -26 230 4294967270Pas de probl
`eme lorsque les valeurs converties restent dans la plage de valeur du type cible...Op´erateurs bit`a bit
I ne fonctionnent que sur les types entiers I `a ne pas confondre avec les op´erateurs logiques||et &&Bit 10011Bit 20101
&(et)0001 |(ou)0111 ^(ou exclusif)0110Op´erateur &
a10110111 b11010101 a&b10010101Op´erateur|
a10110111 b11010101 a|b11110111 Op´erateur^
a10110111 b11010101 a^b01100010 utile en cryptographie car r´eversible !
a^b01100010 a10110111 b=(a^b)^a11010101XOR logique IIl n"y a pas de xor logique en C :a^^b:(
Isolution possible : transformer les conditions logiques en entier et utiliser un xor bit `a bit1#defineXOR(cond1 , cond2) (( cond1) != 0)ˆ(( cond2) != 0)
23intmain(intargc ,charargv [ ] )f
4inta=atoi ( argv [ 1 ] ) ;
5intb=atoi ( argv [ 2 ] ) ;
6if(XOR(a%2, b%2))
7 printf ( "%dou%destdivisiblepar2maispaslesdeuxnn" , a, b );
8else9 printf ( "%det%dsontpairsouimpairstouslesdeuxnn" , a, b );
10return0;
11g se comporte ainsi nborie@perceval:~> ./test 2 22 et 2 sont pairs ou impairs tous les deux
nborie@perceval:~> ./test 2 32 ou 3 est divisible par 2 mais pas les deux
nborie@perceval:~> ./test 5 45 ou 4 est divisible par 2 mais pas les deux
nborie@perceval:~> ./test 5 175 et 17 sont pairs ou impairs tous les deuxOp
´erateur unaire
I inversion des bits (compl´ement`a un) a10110101 a01001010D´ecalage`a gauche
I x<181<<1101101010
(181*2)-256 = 10601101010 D´ecalage`a gauche
I181 est trop petit par rapport`a la taille d"unintpour
que la perte du bit de poids fort soit sensible, mais pas pour unchar1intmain(intargc ,charargv [ ] )f
2unsigned charc=181;
3inti=c ;
4c = c<<1;
5i = i<<1;
6printf ( "%d%dnn" , c , i );
7return0;
8g donne nborie@perceval:~> ./test106 362D
´ecalage`a droite
I x>>y: d´ecale les bits dexdeybits vers la gauche (xn"est pas modifi´e) I remplissage avec : - des 0 si type non sign´e (ou type sign´e mais de
valeur positive), version portable - d ´epend de l"impl´ementation sinon!, version non portable I jamais de d´ecalage sur les entiers sign´es sans une tr `es bonne raison I les bits de poids faibles sont perdusD´ecalage circulaire`a gauche
I pour d´ecalerxde n (´ecalerxde n bits vers la gauche
- fairexOUtmp1voids h i f tc i r c u l a rl e f t (unsigned charc ,unsigned intn)f
2n=n%CHARBIT;/modulo 8 probablement/
3unsigned chartmp = (c)>>(CHARBITn );
4(c )=((c)< 5g Avec un affichage binaire de 80 (enunsigned char) et les 7 d´ecalages: nborie@perceval:~> ./test 0 1 0 1 0 0 0 0
1 0 1 0 0 0 0 0
0 1 0 0 0 0 0 1
1 0 0 0 0 0 1 0
0 0 0 0 0 1 0 1
0 0 0 0 1 0 1 0
0 0 0 1 0 1 0 0
0 0 1 0 1 0 0 0D
´ecalage circulaire`a droite
I pour d´ecaler circulairementxde n (´ecaler circulairementxde SIZE-n bits`a gauche 1voids h i f tc i r c u l a rr i g h t (unsigned charc ,unsigned intn)f
2 s h i f tc i r c u l a rl e f t (c , (CHARBITn) % CHARBIT );
3g I travailler sur du non-sign´e ! (N. Borie : Vous allez alors au devant de graves d ´econvenues...)
M ˆeme programme qu"avant avec deschar:
nborie@perceval:~> ./test 0 1 0 1 0 0 0 0
1 0 1 0 0 0 0 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Aie, le compl
´ement`a deux a introduit des 1 !
Un bit tout seul
I n`emebit`a 1 (en partant de z´ero) et les autres`a 0 = 1< Iquotesdbs_dbs50.pdfusesText_50
0 1 0 1 0 0 0 0
1 0 1 0 0 0 0 0
0 1 0 0 0 0 0 1
1 0 0 0 0 0 1 0
0 0 0 0 0 1 0 1
0 0 0 0 1 0 1 0
0 0 0 1 0 1 0 0
0 0 1 0 1 0 0 0D
´ecalage circulaire`a droite
I pour d´ecaler circulairementxde n (1voids h i f tc i r c u l a rr i g h t (unsigned charc ,unsigned intn)f
2 s h i f tc i r c u l a rl e f t (c , (CHARBITn) % CHARBIT );
3g I travailler sur du non-sign´e ! (N. Borie : Vous allez alors au devant de graves d´econvenues...)
Mˆeme programme qu"avant avec deschar:
nborie@perceval:~> ./test0 1 0 1 0 0 0 0
1 0 1 0 0 0 0 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Aie, le compl
´ement`a deux a introduit des 1 !
Un bit tout seul
I n`emebit`a 1 (en partant de z´ero) et les autres`a 0 =1< Iquotesdbs_dbs50.pdfusesText_50
[PDF] bits traduction
[PDF] bits twitch
[PDF] biyoloji lys 2017
[PDF] biyoloji soru bankası pdf
[PDF] biyoloji test ygs
[PDF] bjelovar info medij
[PDF] bk 789 ne demek
[PDF] blablacar marketing mix
[PDF] blablacar stratégie marketing
[PDF] blanche neige ce1
[PDF] blanche neige grimm analyse
[PDF] blanche neige histoire courte
[PDF] blanche neige histoire originale pdf
[PDF] blanche neige perrault