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

如题所述

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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-12
signed是默认的
表示
这个变量
是有符号的
也就是可以存储
整数
和负数
unsigned则需要
显示给出
表示
这个变量
没有符号
值能存储数的大小
而不能表示
正负
另外
signed存储
符号是有代价的
代价就是
存储空间中的一个比特位
专门用来存储符号
这一位不能表示数值
所以
一般来说
同类型的signed能够存储的数的绝对值大小要小于undigned
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI
C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
第2个回答  推荐于2018-04-16
signed是默认的,表示这个变量是有符号的,也就是可以存储整数和负数,unsigned则需要显示给出表示这个变量 没有符号,值能存储数的大小,而不能表示正负。本回答被网友采纳
第3个回答  2019-10-29
signed是有符号数,unsigned是无符号数。其中有符号数存储时首位存符号(1代表负数,0代表正数)。
第4个回答  2019-05-27
主要是取值范围。
unsigned和signed在一种类型下,unsigned表示在这个范围大小的整数,signed一般都是在这个范围内的从负到正