-1 unsigned output

-sharpinclude <stdio.h>
int main()
{
    short num = -1;
    // 1000 0000 0000 0001()
    // 1111 1111 1111 1110()
    // 1111 1111 1111 1111()
    // ,  65535
    printf("%u\n", num);
}

question: why is the result not 65535
Thank you

Mar.30,2021

you need

  

your result should be 4294967295, right? 32-bit (not 16-bit), the binary corresponding to-1 is 32 1s, so the result is 2 ^ 32-1

Menu