问答网

当前位置: 首页 > 知识问答 > c语言中signed 和unsigned是什么意思

c语言中signed 和unsigned是什么意思

知识问答 浏览3次

把这本书烧了,把这本书烧了,把这本书烧了。

char是字符类型,用于表示字符,一般取值范围可能是-128~127也可能是0~255,由编译器决定。因为表示字符,所以数值并不重要,所以取值范围编译器怎么方便怎么来,并不是确定的。

signed/unsigned用于修饰整数类型,分别表示有符号和无符号。当你只需要正整数的时候就可以用无符号类型,否则就要用带符号类型。

整数类型分为几级,由低到高char, short, int, long, long long,高一级的类型尺寸需要

大于或等于

低一级的尺寸。C/C++的规则为了给编译器尽可能多的自由度,并没明确规定这些类型的长度。(题外话,所以这些类型

不具有可移植性

)现在日常开发的大多数环境中char是8位,short是16位,int是32位,long long是64位。long有可能是32位也有可能是64位。大的类型能表示数的范围比小的类型大。但是大的类型占用空间也大,如果不需要那么大范围可能造成空间浪费。另外int以外的类型在运算过程中有时候可能会有额外的成本,特别是大于int的类型。另外注意对于char以外的类型,默认是signed的。char不是。