比如说整型变量吧。unsigned int 是从0到2的32次方减1,而signed int 是从负2的31次方到正2的31次方减1.在计算机里,整型变量占用4字节,也就是32位的存储空间。对于有符号数来说,正负号要单独占一位。所以除去符号位以外,数的绝对值就占31位。这就是有符号和无符号的区别。
有符号数如果高位为1,则为负数的补码。对于一个有符号整数,C编译程序将把该值(二进制代码)的最高位作为符号标志位(符号标志位是0,表示正数;为1,表示负数)