c - Implicit Type Conversion -


#include<stdio.h> int main(void) {    signed int a=-1;   unsigned int b=1;   int c= a+b;   printf("%d\n",c);    return 0;   } 

according rule of implicit type conversion, if 1 operand unsigned int,the other converted unsigned int , result unsigned int in binary operation. here b unsigned int, a should type casted unsigned int.as unsigned int +ve , value of a 1.so c=1+1=2.but output 0.how ?

-1, when cast unsigned become largest possible value type -- e.g. 32-bit unsigned, it'll 4,294,967,295. when add 1 that, value "wraps around" 0.


Comments

Popular posts from this blog

c++ - Compiling static TagLib 1.6.3 libraries for Windows -

PostgreSQL 9.x - pg_read_binary_file & inserting files into bytea -

asp.net - call stack missing info on mono with apache and mod_mono -