|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Florian PasquereauConducteur de travaux Inscription : décembre 2012 Messages : 9 ![]() |
Bonjour à tous je suis en train de coder une fonction qui retourne une chaine de caractère en fonction d'un int passé en paramètres et de la base souhaitée.
Voici le prototype Code :
Voici ma fonction Code :
Merci |
||||
|
|
00
|
|
|
#2 | |
|
Membre Expert
![]() Développeur en systèmes embarqués Inscription : mars 2006 Messages : 763 ![]() |
Salut,
Citation:
En logique pure un entier est négatif si son bit de poids le plus élevé est à 1. A+ Pfeuh |
|
|
|
10
|
|
|
#3 | ||
|
Membre Expert
![]() Développeur en systèmes embarqués Inscription : mars 2006 Messages : 763 ![]() |
Je viens de retrouver un de mes vieux snippets, qui ne gère pas les erreurs. C'est normal, si tu retournes un int, il n'y a pas de code d'erreur possible, il faudrait un prototype dont un des paramètres serait un pointeur vers le résultat et qui retournerait success ou failure, comme par exemple:
Code :
int getDigitValue(char digit, int base, int* result); Code :
|
||
|
|
10
|
|
|
#4 |
|
Invité de passage
![]() Florian PasquereauConducteur de travaux Inscription : décembre 2012 Messages : 9 ![]() |
Ok donc si j'ai bien compris
123 = 1111011 - 123 = 0000101 c'est bien ça Par contre je ne comprends pas pour les hexa..... 123 = 7B -123 = ??? |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() ![]() |
Salut,
En fait, il n'y a pas de représentation « universelle » d'un nombre négatif (typiquement, le langage C lui-même autorise trois représentations différentes : signe et magnitude, complément à 1 et complément à 2). Cependant, celle qui est majoritairement utilisée dans les systèmes informatisés actuels, c'est le complément à 2. Elle consiste à prendre le complément à 1 d'un nombre (c'est-à-dire l'inverse de tous ses bits) et à ajouter 1. Sur 8 bits, on a 123 qui vaut 0x7b (0b01111011) et -123 qui vaut 0x85 (0b10000101). Sur 32 bits, on a 123 qui vaut 0x0000007b (0b00000000000000000000000001111011) et -123 qui vaut 0xffffff85 (0b11111111111111111111111110000101). Bonne soirée.
__________________
Récursivité en C : épidémie ou hérésie ? "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman |
|
10
|
|
|
#6 | ||
|
Invité de passage
![]() Florian PasquereauConducteur de travaux Inscription : décembre 2012 Messages : 9 ![]() |
Voici la version finale. Je pense qu'il est possible de l'optimiser au niveau des switch.
Merci aux personnes qui mon aidé. C'est vraiment cool, ce sera un peu grasse a vous si je suis bon un jour ![]() Voici le code. Code :
![]() Bonne année à tous, et encore merci . |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com