首页 / 智能手机 / 正文

c语言中有符号数和无符号数 

在C语言中,有符号数和无符号数的表示方式有所不同。

1. 有符号数:在计算机内部用补码表示有符号数。正数的补码为正数本身,负数的补码为负数的绝对值各位取反后加1。例如,8位整数5的补码为0000 0101,而8位整数-7的补码为11111001。在有符号数中,最高位用于表示数据的符号,最高位为1时,表示该数为负数,最高位为0时,表示该数为正数。

2. 无符号数:在计算机内部用原码表示无符号数。无符号数默认为正数,没有符号位。对于固定长度的无符号数,MAX_VALUE(所能表示的最大值)+ 1 --> MIN_VALUE(所能表示的最小值),MIN_VALUE - 1 --> MAX_VALUE。

在C语言中,只有整数类型能够声明为unsigned类型。无符号数和有符号数的范围区别在于,无符号数中,所有的位都用于直接表示该值的大小,而有符号数中,最高位用于表示正负,所以,当为正值时,该数的最大值就会变小。

如有侵权请及时联系我们处理,转载请注明出处来自