salut,
est-il possible de créer une variable avec un nombre n de bit (ex: 512bits) ?
salut,
est-il possible de créer une variable avec un nombre n de bit (ex: 512bits) ?
Ce n'est pas portable partout, car le type char doit faire 8 bits
Une variable ou un type ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 typedef struct quelconque { unsigned char nom [64]; //64*8 = 512 };
http://www.linux-kheops.com/doc/ansi-c/node90.htm
j'ai testé vite fait... en fait ça marche dans les structures, je ne sais pas pourquoi ça marche pas ailleur. tu créés une struct montype du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 typedef struct montype { unsigned int var:n; }montype;
@reptils:
C'est indiqué dans la FAQ DVP.com aussi. Mais pour 512 bits, ça ne marche plus...
n doit être une expression constante valent 1 à 16 pour être portable.Envoyé par reptils
Par exemple, avec gcc sur x86 :
donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include "stdio.h" int main (void) { typedef struct montype { unsigned int var:33; } montype; return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Project : Forums Compiler : GNU GCC Compiler (called directly) Directory : C:\dev\forums\ -------------------------------------------------------------------------------- Switching to target: default Compiling: main.c main.c: In function `main': main.c:8: error: width of `var' exceeds its type Process terminated with status 1 (0 minutes, 0 seconds) 1 errors, 0 warnings
Pas de façon portable. En plus, ça ne sert à rien.Envoyé par Emcy
La +1, je ne vois pas pourquoi créer un type spécial...Envoyé par Emmanuel Delahaye
c'est vrai que 256bits j'y suis allé peut être un peu fort mais c'etait juste une question que je me posais => par exemple sur certains µC, il n'y a pas de type qui designe un entier de 64bits... comment fait-on alors pour faire des calculs avec de grands chiffre si on a besoins de faire des calculs très très très très très (j'en ai mis assez ?) précis ?
Il existe des bibliothèques qui gèrent des nombres entiers de taille infinie (BigNum, par exemple). Evidement, ça prend de la place et c'est lent... Sinon, on aurait pas inventé les machines 32-bit, puis 64, 128 etc. Le logiciel ne sera jamais aussi performant que le matériel.Envoyé par Emcy
Le choix de ton micro-contrôleur n'est peut être pas adapté à ce que tu veux faire.
Je n'ai pas le probleme, c'est juste que j'ai vu un mec sur un forum qui avait ce probleme et je me demandais comment c'etait possible de le resoudre (comme ça je me coucherais moins con ce soir)Envoyé par Emmanuel Delahaye
=> comment sont conçu ces bibliothèques ?
Je suppose qu'il existe des bibliothèques spécialisées, non ?Envoyé par Emcy
Edit: Argh ! Encore grillé !
Partager