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个回答  推荐于2019-11-04

signed 指示被声明的对象的类型为有符号的类型。

unsigned 指示被声明的对象的类型为无符号类型。

无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在除char以外的数据类型中,声明的整型变量都是有符号的类型;char在默认情况下总是无符号的。

扩展资料

无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据。

比如16位系统中一个short能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数;如果是无符号数,则都解释为正数。

另外,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int

参考资料:百度百科-unsigned

百度百科-signed

本回答被网友采纳
第2个回答  推荐于2019-11-01

signed是默认的 表示 这个变量 是有符号的  也就是可以存储 整数 和负数

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

另外 signed存储 符号是有代价的 代价就是 存储空间中的一个比特位 专门用来存储符号 这一位不能表示数值

所以 一般来说 同类型的signed能够存储的数的绝对值大小要小于undigned

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

本回答被网友采纳
第3个回答  2013-04-06
signed是有符号数,unsigned是无符号数。其中有符号数存储时首位存符号(1代表负数,0代表正数)。
第4个回答  2013-04-06
signed 表示有符号,即分正负unsigned 表示无符号,只能表示0或者正数