#include main() { unsigned a = -20; unsigned b = 10; printf(“%d\n”, (a % b)); printf(“%d\n”, (-20 % 10)); } Output: 6 0 La seconde printf imprime la valeur attendue de 0 tandis que la première printf en imprime 6. Pourquoi cette sortie inattendue avec des enties non signées?
Cette question connexe concerne la détermination de la valeur maximale d’un type signé au moment de la compilation: Question C: off_t (et autres types entiers signés) valeurs minimale et maximale Cependant, j’ai depuis compris que déterminer la valeur maximale d’un type signé (par exemple, time_t ou off_t ) au moment de l’ exécution semblait être […]
Sur le terminal python quand je fais: – In [6]: 0xffffff85 Out[6]: 4294967173 In [9]: “%d” %(0xffffff85) Out[9]: ‘4294967173’ Je voudrais pouvoir donner dans 0xffffff85 et obtenir le nombre décimal équivalent signé en python (dans ce cas -123 ). Comment pourrais-je faire ça? En C, je pourrais le faire comme: – int main() { int […]
Je travaille un peu en C embarqué avec un accéléromètre qui renvoie les données sous forme de nombre de complément à 14 bits 2. Je stocke ce résultat directement dans un uint16_t . Plus tard dans mon code, j’essaie de convertir cette forme “brute” de données en un entier signé pour représenter / utiliser le […]
Je rencontre pas mal de problèmes d’interaction entre emscripten et C et C Plus précisément, je ne parviens pas à accéder à une structure créée en C en javascript, étant donné que le pointeur sur la structure est passé à javascript en tant que bibliothèque externe . Regardez le code suivant: C: #include #include #include […]
J’apprends tout simplement OpenMP à partir de didacticiels et de ressources en ligne. Je veux quadriller une masortingce (la multiplier par elle-même) en utilisant une boucle parallel for . Dans la documentation du compilateur IBM , j’ai trouvé l’exigence selon laquelle “la variable d’itération doit être un entier signed “. Est-ce également vrai dans la […]
struct st { int a1 : 3; int a2 : 2; int a3 : 1; } void main(void) { x.a3 = -1; if (x.a3 == -1) printf(“TRUE\n”); else printf(“FALSE\n”); x.a3 = 1; if (x.a3 == 1) printf(“TRUE\n”); else printf(“FALSE\n”); } Dans le cas où ‘x.a3 = -1;’ D’abord si est VRAI . Mais pourquoi “x.a3 […]
Je lis un livre en C, et l’auteur a mentionné un texte: ” if ch (a char variable) is a signed type, then storing 255 in the ch variable gives it the value -1 “. Quelqu’un peut-il élaborer à ce sujet?
Je veux convertir une chaîne en un entier signé. Ce qui suit est l’exigence. J’ai stocké la valeur hexadécimale sous forme de chaîne dans le tampon. Maintenant, je veux convertir cette valeur en int signé. buf = “fb869e” Convertissez ceci en buf = “fb869e” signé. Donc, o / p devrait être -293218. mais quand j’essaie […]
En décalant à gauche de (caractère) 0xff par 8 et en le convertissant en entier, nous obtenons -256 ou 0xffffff00. Quelqu’un peut-il expliquer pourquoi cela devrait arriver? #include int main (void) { char c = 0xff; printf(“%d %x\n”, (int)(c<<8),(int)(c<<8)); return 0; } La sortie est -256 ffffff00