C语言中signed 和unsigned是什么意思?

Python019

C语言中signed 和unsigned是什么意思?,第1张

1、signed是默认的,表示这个变量是有符号的,可以存储整数和负数。

2、unsigned则需要显示给出表示这个变量,没有符号值能存储数的大小,而且不能表示正负。

3、signed存储符号是有代价的,代价就是存储空间中的一个比特位专门用来存储符号,这一位不能表示数值。一般来说,同类型的signed能够存储的数的绝对值大小要小于undigned。

4、unsigned的作用就是将数字类型无符号化,

例如

int

型的范围:-2^31

~ 2^31

-

1,而unsigned

int的范围:0

~

2^32。

5、signed在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。

扩展资料:

signed

和unsigned的联系:

整型的每一种都有无符号(unsigned)和有符号(signed)两种类型,在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。

无符号版本和有符号版本的区别就是有符号类型需要使用一个bit来表示数字的正负,比如16位系统中一个int能存储的数据的范围为–32768

~

32767(16位2进制的最高位作为符号位‘1’为负‘0’为正),而unsigned能存储的数据范围则是0~65535(这个最高位不用做符号位,所以是2的16次方,一共65536)。由于在计算机中,整数是以补码形式存放的。

参考资料:搜狗百科-signed