This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

printf problem for integers > 32767

I am using printf function to send data to serial port. The mcu has to send a number which may be upto 65535.

But for numbers larger than 32767, I was getting negative numbers. To test it I wrote following code

        unsigned int i;
        for(i=32760;i<=32770;i++)
                printf("%d\n", i);    //printf ("char %bd int %d long %ld\n",a,b,c);

What I was getting in VB application is


32760
32761
32762
32763
32764
32765
32766
32767
-32768
-32767
-32766

So I tried the same program in Pelles C for Windows . The result was perfect.


32760
32761
32762
32763
32764
32765
32766
32767
32768
32769
32770
Press any key to continue...

Can somebody tell me what is wrong here?

0