Je suis en train de convertir un entier non signé en binary à l’aide d’opérateurs au niveau du bit, et je fais actuellement le nombre entier & 1 pour vérifier si le bit est 1 ou 0 et la sortie est affichée, puis décalez le décalage à droite de 1 pour le diviser par 2. […]
J’ai un caractère de tableau char input[11] = {‘0′,’2′,’7’, ‘-‘,’1′,’1′,’2′, ,’0′,’0′,’9′,’5’}; Comment convertir une entrée [0,1,2] en int one = 27 , une entrée [3,4,5,6] en int two = -112 et une entrée [7,8,9,10] en int three = 95 ? merci, JNK
La documentation de GLib contient un chapitre sur les macros de conversion de type. Dans la discussion sur la conversion d’un int en un pointeur *void il est dit (emphase mienne): Naïvement, vous pouvez essayer ceci, mais c’est incorrect: gpointer p; int i; p = (void*) 42; i = (int) p; Encore une fois, cet […]
J’ai trouvé les définitions suivantes dans /usr/include/limits.h: # define INT_MIN (-INT_MAX – 1) # define INT_MAX 2147483647 En outre, il semble que tous les XXX_MAX de ce fichier d’en-tête soient explicitement définis à partir d’une constante numérique. Je me demande s’il existe un moyen portable (en fonction de la taille des mots sur différentes plates-formes) […]
Pourquoi est-ce que je reçois 0 ?? Et avertissement du compilateur: le format ‘% d’ attend un argument de type ‘int‘, mais l’argument 3 a le type ‘long unsigned int’ Voici le code: #include //function declerations… int power(int base, int on); int main(void) { printf(“%d”,power(2, sizeof(int)*8)-1); return 0; } int power(int base, int on) { […]
Mes excuses si la question semble bizarre. Je débogue mon code et cela semble être le problème, mais je ne suis pas sûr. Merci!
J’ai un entier non signé, mais quand je l’imprime avec% d, il y a parfois une valeur négative?
Dans une interview, on m’a demandé ce que je pensais du code suivant: #include int main() { float f = 10.7; int a; a = f; printf (“%d\n”, a); } J’ai répondu: Le compilateur émettra un avertissement lorsque vous modifiez un float en int sans casting. Le int aura la valeur de garbage comme vous […]
J’ai ces définitions: int data = uartBaseAddress[UART_DATA_REGISTER / 4]; // data coming from UART RX port char message[20]; // array of 20 chars Maintenant, quand j’essaie de faire ceci: message[0] = (char) data; printf(“%x”, message[0]); Il imprime (par exemple): “ffffff9c” . Bien sûr, je ne veux que les 8 derniers bits (“9c”) et je ne […]
J’ai un programme qui utilise plusieurs types différents d’int. Le plus souvent utilisés sont uint64_t et le standard int . Cependant, je me demande si je peux effectuer en toute sécurité des opérations mixtes. Par exemple, j’ai un uint64_t et je veux y append un int et stocker cette valeur sous un autre uint64_t . […]