Newbie en C [C, C++] - C++ - Programmation
Marsh Posté le 22-10-2002 à 13:44:54
en fait tout depend de la machine sur alquelle tu compiles.
Un int fait 2 octets sur un pentium je crois et 4o sur un RS6000 (je crois j'en pas sur du tout).
Tout depende de toin compilateur en fait.
Renseigne toi pour savoir comment li interprete les int et compagnie.
Bref, la portabilite du C, c'est du vent.
Marsh Posté le 22-10-2002 à 13:48:57
bon bref je m'en fou en fait c'est pas ca le pb
C'est ce pb d'intervalle en fait.
etant donne qu'un unsigned long ca va de 0 a 4.294.967.295 (de tete hein), comment je fais si je veux foutre plus dedans ?
Obligé de chopper un double ?? (j'ai dit une connerie la nan ? )
chris -> Pour le int et le short effectivement ca depend du systeme (c'est mon bouquin qui me le dit )
Marsh Posté le 22-10-2002 à 13:55:39
oue ca depend mais bon, je sais que tu bosse sous win
__int64 si tu veuxplus mais je sais pas comment ca marche, si c bien gerer etc etc ( et ca depend tres fortement du compilo)
Marsh Posté le 22-10-2002 à 13:57:58
Zet a écrit a écrit : Bref, la portabilite du C, c'est du vent. |
utilise des long pour que ca soit portable...
Marsh Posté le 22-10-2002 à 13:58:35
en fait c'est pour sauvegarder des donnees dans une base
enfin bref, je crois que pour mes progs d'avant j'ai pas trop fait gaffe a ca, d'ailleurs j'utilise pratiquement jamais le unsigned.
Mais bon, ca m'explique toujours pas pkoi j'arrive a fourrer un 13213242324 dans un int
Marsh Posté le 22-10-2002 à 13:59:14
Lolo- a écrit a écrit : utilise des long pour que ca soit portable... |
change rien, sur 32bits un long c 4octet, sur une machine 64 ca sera 8
pour la portabilite le mieux est de redefinir les types de bases
Marsh Posté le 22-10-2002 à 14:00:06
Godbout a écrit a écrit : en fait c'est pour sauvegarder des donnees dans une base enfin bref, je crois que pour mes progs d'avant j'ai pas trop fait gaffe a ca, d'ailleurs j'utilise pratiquement jamais le unsigned. Mais bon, ca m'explique toujours pas pkoi j'arrive a fourrer un 13213242324 dans un int |
taille max d"un unsigned int : 2 puissance 32
int: -np31 a +2p31
Marsh Posté le 22-10-2002 à 14:00:19
Godbout a écrit a écrit : Mais bon, ca m'explique toujours pas pkoi j'arrive a fourrer un 13213242324 dans un int |
processeur 32 bits -> int 32 bits (en gros ) -> -2147483648 à 2147483647
Marsh Posté le 22-10-2002 à 14:10:30
antp a écrit a écrit : processeur 32 bits -> int 32 bits (en gros ) -> -2147483648 à 2147483647 |
putain il suxx grave mon bouquin alors
Marsh Posté le 22-10-2002 à 14:16:36
bah t'as peut-être un bouquin pour la programmation sur 286
Marsh Posté le 22-10-2002 à 14:19:38
Pourtant ils parlent de prog 32 bits, enfin il doit avoir 8/9 ans le bouquin
Marsh Posté le 22-10-2002 à 14:35:42
antp a écrit a écrit : processeur 32 bits -> int 32 bits (en gros ) -> -2147483648 à 2147483647 |
Euh...pour moi proc 32 bits -> compilo 16 bits -> int 16 bits -> DTC Antp
donc j'aurais plutôt dit ça :
compilo 16 bits -> int 16 bits
compilo 32 bits -> int 32 bits
Marsh Posté le 22-10-2002 à 14:37:33
Godbout a écrit a écrit : Pourtant ils parlent de prog 32 bits, enfin il doit avoir 8/9 ans le bouquin |
Sur mon 386 (32 bits) mon compilo borland sortait du code 16 bits.
Marsh Posté le 22-10-2002 à 14:46:14
*Syl* a écrit a écrit : Euh...pour moi proc 32 bits -> compilo 16 bits -> int 16 bits -> DTC Antp donc j'aurais plutôt dit ça : compilo 16 bits -> int 16 bits compilo 32 bits -> int 32 bits |
ouais c'est ce que j'aurais du dire en effet
j'ai supposé un peu trop vite que sur un proc 32 bits on utilisait un compilo 32 bits
Marsh Posté le 22-10-2002 à 15:59:06
Taz@PPC a écrit a écrit : vous feriez mieux d'aller faire un tour dans limits.h au lieu de balancer des chiffres |
utilise les chaines de caracteres si tu ve pas faire de calcul avec...
Marsh Posté le 22-10-2002 à 17:56:07
Tu confonds peut-être avec VB :
Un int en VB = un short en C, un long en VB = un int en C.
Marsh Posté le 22-10-2002 à 21:38:15
Taz@PPC a écrit a écrit : n'importe quoi! la capacité d'un entier en C n'est fixée que par l'implémentation |
je suppose qu'il parlait en general. (compilo 32bits sous x86).... pas la peine de toujours s'enflammer comme ca, c usant a la fin, surtout que tu ne fais que repeter ce qui a été dit precedemment
Marsh Posté le 22-10-2002 à 22:27:45
chrisbk a écrit a écrit : je suppose qu'il parlait en general. (compilo 32bits sous x86).... pas la peine de toujours s'enflammer comme ca, c usant a la fin, surtout que tu ne fais que repeter ce qui a été dit precedemment |
désolé mais j'ai connu un compilateur DOS ou les int était sur 16bits. et meme sur mon x86, c'etait 16 bits.
je dis jsute de regarder dans limits.h par ce que sinon on croit que c'est 32 bits, on base tout dessus et le jour ou l'on change d'architecture (architecture 64bits par exemple), boum, y a plus rien qui marche
Marsh Posté le 22-10-2002 à 22:29:49
Taz@PPC a écrit a écrit : désolé mais j'ai connu un compilateur DOS ou les int était sur 16bits. et meme sur mon x86, c'etait 16 bits. |
DOS = 16 bits (à la base)
x86 = 8 bits (le premier )
Marsh Posté le 24-10-2002 à 03:42:48
Quand les processeurs 64 bits vont se généraliser, combien de codes sources vont faire la grève ?
Java, avec son int de 32 bits fixe aura des airs de VB.
Marsh Posté le 22-10-2002 à 13:40:10
Une chtite question qui me trotte dans la tete.
Un int, l'intervalle de valeurs va de -32768 a 32767 nan ?
Si je rajoute 1 a 32767, il devrait passer a -32768 ?
La je viens de faire un prog de test, j'arrive a foutre 132432432424 dans un int. Y a un truc qui m'echappe la
---------------
Super.