C语言有符号和无符号的有什么不同啊

来源:百度知道 编辑:UC知道 时间:2024/05/13 06:10:45
C语言中有signed和unsinged的,有什么不同呢!谢谢大家了!

比如说整型变量吧。unsigned int 是从0到2的32次方减1,而signed int 是从负2的31次方到正2的31次方减1.
在计算机里,整型变量占用4字节,也就是32位的存储空间。对于有符号数来说,正负号要单独占一位。所以除去符号位以外,数的绝对值就占31位。这就是有符号和无符号的区别。

有符号数如果高位为1,则为负数的补码。对于一个有符号整数,C编译程序将把该值(二进制代码)的最高位作为符号标志位(符号标志位是0,表示正数;为1,表示负数)