c语言中signed 和unsigned是什么意思
把这本书烧了,把这本书烧了,把这本书烧了。
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不是。wordsigned是什么数据类型
char C/C++含义 描述:高级编程语言数据类型 定义:计算机编程语言(c、c++、java等)中可容纳单个字符的一种基本数据类型。 在C/C++中: char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中是undefined,编译器可以实现为带符号的,也可以实现为不带符号的,有些编译器如pSOS的编译器,还可以通过编译开关来指定它是有符号数还是无符号数。 而且关于char还有一个特殊的语言就是char *,它在C/C++中有专门的语义,既不同于signed char *,也不同于unsigned char *,专门用于指以'\0'为结束的字符串。 C语言是弱类型还没什么,如果在C++中,你可以试一试,用 char *p = "abcd"; 是可以通过编译的 但如果用 signed char *p = "abcd"; 还是 unsigned char *p = "abcd"; 都是不能通过编译的。 关于这些在C/C++的语言标准或一些经典书籍如The C++ Programing Language中都有很清楚的说明。
wordsigned是一种数据类型,用于表示有符号的整数。在计算机中,有符号整数可以表示正数、负数和零,它们的取值范围通常由位数决定,比如8位有符号整数可以表示-128到127之间的整数。在程序设计中,有符号整数通常用于表示需要正负数值的情况,比如温度、金钱等。它们在计算机中以二进制补码形式表示,可以进行加减乘除等数学运算。在不同的编程语言中,有符号整数的表示方式和取值范围可能会有所不同,但它们都是一种基本的数据类型,用于存储和处理整数值。