Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3985 connectés 

 


Dernière réponse
Sujet : [c] format d' entiers ?
Jubijub une question : ca sert à quoi l'hexa dans un code ?

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Jubijub une question : ca sert à quoi l'hexa dans un code ?
Pierre Maurette

mario51 a écrit a écrit :

 
 
C'est pas 50 * 1, c'est 2^50+2^49.....+1 !!
 
Je crois que je me suis trompe sur le message precedent !!!!!  




 
C'est pas archi-clair pour moi, ce qui me chiffonne, c'est que ce n'est pas ton prog qui peut te fournir cet 'entier', puis qu'il sait pas le gérer. Je bouffe, et je recherche une fonction que j'avais écrite: MemToStr(void* ptr, int nbbytes, etc.....) et qui te sort un chaîne qui est la représentation hexa ou binaire d'une zone mémoire, avec options. De toutes façons, je dois la retrouver pour mon fiston. A +.
 
un truc qui commence à me peler le jonc: je relis mes messages une fois publiés, et il faut toujours que je les édite pour les fôtes. je va fer kom toulmonde: du essemmesse ...

 

[edtdd]--Message édité par Pierre Maurette--[/edtdd]

246tNt Et alors ?
 
2^0 + 2^1 + 2^2 + 2^3 + 2^4 + .... + 2^50  = 2^51 - 1
 
2^51 - 1 < 2^64 => Ca tien sur 64 bits
mario51

246tNt a écrit a écrit :

Ben si c 50fois 1 et pas plus, tu peut stocker ca dans un long long ( 64 bits ).  




 
C'est pas 50 * 1, c'est 2^50+2^49.....+1 !!
 
Je crois que je me suis trompe sur le message precedent !!!!!

246tNt Ben si c 50fois 1 et pas plus, tu peut stocker ca dans un long long ( 64 bits ).
mario51

Pierre Maurette a écrit a écrit :

 
 
Merde, je pige toujours pas .... Tu fais des opérations, sur tes 'entiers'? si oui, lesquelles ? D'où y viennent ? Qu'appelle-t-tu chaine binaire (en gros, c'est pour s'en servir ou juster pour mater ?) a + de te lire  




 
Desole, je dois mal m'expliquer.
Reprenons:
Je dois pouvoir traduire des entiers en binaires.
Ja'i donc fait une fonction qui prends un entier en parametre et qui retourne une chaine de caractere contenant l'entiers converti en binaire.
La chaine binaire doit aller jusqu'a 1111111...11  soit 50 fois 1. L'entier correpondant est donc tres grand 2^11+2^10+...+1
J'ai donc besoin d'un type qui me permet de stocker cet entier durant le deroulement de la fonction.
 
En esperant que ce soit + clair et que tu puisse m'aider
 
Merci, a+

Pierre Maurette

mario51 a écrit a écrit :

 
 
 
En effet, je programme en C, donc pour les classes, hors de question!!!
 
J'ai besoin de stocker un entier qui fait environ 20 chiffres pour ensuite le transformer en chaine binaire (stocker dasn une chaine de caractere)
 
Voila....  




 
Merde, je pige toujours pas .... Tu fais des opérations, sur tes 'entiers'? si oui, lesquelles ? D'où y viennent ? Qu'appelle-t-tu chaine binaire (en gros, c'est pour s'en servir ou juster pour mater ?) a + de te lire

mario51

Pierre Maurette a écrit a écrit :

Mario51, t'es partout actuellement avec un souci qui m'a l'air bien compliqué? Si c'est pas l'idée du siècle qui te rendra richissime (fais gaffe, Billou), t'en dis un peu plus, quelqu'un pourra peut-être t'aider. Peut-être genre "expliques nous ce dont t'as besoin, je t'explique comment t'en passer" (coluche?). Chez Microsoft, ils stockent les TDateTime dans des floats (plus ou moins).  
J'ai lu ailleurs que t'étais en C. Si ton truc se complique, t'aggrave ton cas en te privant des classes. Passequ'une classe "entiers vachement gros", c'est pas très dur à faire, surtout que si c'est pour toi et une seule appli, t'es pas obligé de bétonner et de tout implémenter. Je veux dire t'es pas obligé de coder: CLA += CLB; tu peut te contenter de CLA.Add(CLB); etc etc  




 
 
En effet, je programme en C, donc pour les classes, hors de question!!!
 
J'ai besoin de stocker un entier qui fait environ 20 chiffres pour ensuite le transformer en chaine binaire (stocker dasn une chaine de caractere)
 
Voila....

antp

Jubijub a écrit a écrit :

-->antp : quand tu dis multiplication de ton enfance, c que tu t'es fait chier à prendre les char 1 par 1 pour faire des zolis multiplications, les espèces de sous totaux qu'on aditionne à la fin et tou ???
 
ce truc de fou...
 
-->et l'asm, c pas un allié pour faire des opérations rapides ?  




 
bhen truc de fou, c'est très répétitif ce truc, donc finalement y a pas tellement de lignes de code.
nous on avait dû implémenter ça en mettant 2 chiffre / octet, ça facilitait pas les chose :sweat:
 
pour l'asm, possible, mais bon ici le but était de le faire en C++, c'était pour le cours de C++ pas pour le cours de vitesse :D

Jubijub -->antp : quand tu dis multiplication de ton enfance, c que tu t'es fait chier à prendre les char 1 par 1 pour faire des zolis multiplications, les espèces de sous totaux qu'on aditionne à la fin et tou ???
 
ce truc de fou...
 
-->et l'asm, c pas un allié pour faire des opérations rapides ?
Pierre Maurette Mario51, t'es partout actuellement avec un souci qui m'a l'air bien compliqué? Si c'est pas l'idée du siècle qui te rendra richissime (fais gaffe, Billou), t'en dis un peu plus, quelqu'un pourra peut-être t'aider. Peut-être genre "expliques nous ce dont t'as besoin, je t'explique comment t'en passer" (coluche?). Chez Microsoft, ils stockent les TDateTime dans des floats (plus ou moins).  
J'ai lu ailleurs que t'étais en C. Si ton truc se complique, t'aggrave ton cas en te privant des classes. Passequ'une classe "entiers vachement gros", c'est pas très dur à faire, surtout que si c'est pour toi et une seule appli, t'es pas obligé de bétonner et de tout implémenter. Je veux dire t'es pas obligé de coder: CLA += CLB; tu peut te contenter de CLA.Add(CLB); etc etc
mario51 Merci les gars, c bien beau tout ca mais ca repond pas simplement a ma question .....
[SDF]Poire

buitoni a écrit a écrit :

 
 
non :)
 
Le plus simple c'est de verifier que c'est sur 10 chiffres et que le premier est dans [0-3], on y perds un peu mais bon... Sinon c'est de faire string->entier->string et de verifier que ca donne la meme chose ...  
 
Tout ca pour quoi? Il est encore vivant l'auteur du topic ou on l'a endormi? :D  




lol je sais pas....
A mon avis il a utiliser une classe grand entier  :D  
Et c'etais la meilleure solution.....
 :D

Buitoni

[SDF]Poire a écrit a écrit :

 
C ça  :D  
menfin pas de rapport avec 999 999 999  ;)  




 
non :)
 
Le plus simple c'est de verifier que c'est sur 10 chiffres et que le premier est dans [0-3], on y perds un peu mais bon... Sinon c'est de faire string->entier->string et de verifier que ca donne la meme chose ...  
 
Tout ca pour quoi? Il est encore vivant l'auteur du topic ou on l'a endormi? :D

[SDF]Poire

buitoni a écrit a écrit :

 
 
Ouai, plus petit que 4294967295 en fait :)  




C ça  :D  
menfin pas de rapport avec 999 999 999  ;)

Buitoni

[SDF]Poire a écrit a écrit :

 
Petite précision : Cette condition est necessaire mais pas suffisante il faut que l'entier non signé sur 10 chiffres soit < 2^32 - 1 pour être codé sur 32bits non-signé  




 
Ouai, plus petit que 4294967295 en fait :)

[SDF]Poire

buitoni a écrit a écrit :

 
 
 
Ehoh, ca tiens sur 10 chiffres un entier non signé sur 32 bits!
mais le chiffre le plus significatif doit etre inférieur à 5!
 :crazy:  




Petite précision : Cette condition est necessaire mais pas suffisante il faut que l'entier non signé sur 10 chiffres soit < 2^32 - 1 pour être codé sur 32bits non-signé

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)