无符号变量和有符号变量的区别What`s the difference between the unsigned int

1个回答

  • In C/C++ and some other language (e.g. Java), integers r stored in the memory using 2's complement notation.

    For positive integers, their 2's complement notation is of no difference from their binary representation.

    Negative integers r slightly more complicated. To achieve their 2's complement notation, u can:

    1. get the binary representation of its absolute value;

    2. add 1 to that representation.

    Of course, there're restrictions of limited memory space.

    In this way, negative integers r stored in the memory in quite a same way as positive ones.

    e.g. 1111 1111 = -1;

    However, for a unsigned integer, it is assumed that no negative integers r stored, i.e. all the numbers r stored using their binary representation. In this case, 1111 1111 = 255.

    完全原创,看不懂的话补充说明或者叫我翻译.