Bai,
Je ne vois pas de "zéro entre parenthèse".
Bai,
Je ne vois pas de "zéro entre parenthèse".
Si les cons volaient, il ferait nuit à midi.
entre guillemet.....
pas vraiment dans le sens ou écrire cette ligne de code revient pour moi :
soit a remettre a zéro la chaine S a partir du deuxième caractère, pour moi cela semble la meilleure réponse mais ds ce cas pourquoi la ligne juste au dessus est
s := '100000000.............000' ( 128 zéro)
c'est comme ci il réecrivai deux fois la meme chose.. serai ce pour faire une tempo je ne pense pas.
donc pour moi la seule explication qu'il y avait.. était qu'il recopie la valeur de zéro en ascii ds la chaine S. mais je ne l'aurais pas ecrit comme ca, en tout cas pas en C.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
33
34
35
36
37
38
39
40 // convertis un entier 8bits dans sa representation binaire. // exemple $FF ou 255 devient 11111111 // exemple $00 ou 0 devient 00000000 // exemple $80 ou 128 devient 10000000 function bin(n: byte): string; var cpt : byte; // variable de la boucle For s : string[8]; // chaine temporaire pour le retour begin // initialisation de la chaine temporaire. s:=' '; // pour cpt de 0 a 7 (8 itérations) for cpt:=0 to 7 do begin // si bit 0 de N est égal a 1 alors on ajoute "1" à la fin de S if n and 1=1 then s:=s+'1' // sinon on ajoute un 0 à la fin de S else s:=s+'0'; // on décale les bits de N de 1 vers la droite n := n shr 1; end; // enfin on renvois la chaine temporaire S dans le resultat de fonction bin := s; end;
cette fonction, est bonne, mais ont peu faire plus simple (pour byte) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function Bin(const N: byte): string; const BTC : array[boolean] of char = '10'; begin result := BTC[ (N and $80) = 0 ] + BTC[ (N and $40) = 0 ] + BTC[ (N and $20) = 0 ] + BTC[ (N and $10) = 0 ] + BTC[ (N and $08) = 0 ] + BTC[ (N and $04) = 0 ] + BTC[ (N and $02) = 0 ] + BTC[ (N and $01) = 0 ]; end;
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
Ma messagerie n'est pas la succursale du forum... merci!
Boe,
On y repère facilement du code qui est tout désigné pour l'utilisation d'une boucle for, comme c'était le cas dans le programme que tu cites.
Les boucles sont faites pour être utilisées, ne serait-ce que pour simplifier la lecture du code, et faciliter sa réutilisation.
Exemple : faire la même chose pour un word ==>
- avec une boucle, il suffit de changer les limites de la boucle
- avec ta démarche, il faut ajouter 8 lignes, en évitant de se tromper sur les constantes utilisées.
Si les cons volaient, il ferait nuit à midi.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager