一、unsigned的做用就是将数字类型无符号化, 例如 int 型的范围:-2^31 ~ 2^31 - 1,而unsigned int的范围:0 ~ 2^32。看起来unsigned 是个不错的类型,尤为是用在自增或者没有负数的状况。可是在实际使用中会出现一些意外的状况。3d
二、signed在默认状况下声明的整型变量都是有符号的类型(char有点特别),若是需声明无符号类型的话就须要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据。blog

扩展资料:class
unsigned和signed的区别变量
一、全部比int型小的数据类型(包括char,signed char,unsigned char,short,signed short,unsigned short)转换为int型。若是转换后的数据会超出int型所能表示的范围的话,则转换为unsigned int型扩展
二、bool型转化为int型时,false转化为0,true转换为1;反过来全部的整数类型转化为bool时,0转化为false,其它非零值都转为true数据类型
三、若是表达式中混有unsigned short和int型时,若是int型数据能够表示全部的unsigned short型的话,则将unsigned short类型的数据转换为int型,不然,unsigned short类型及int型都转换为unsigned int类型im
举个例子,在32位机上int是32位,范围–2,147,483,648 to 2,147,483,647,unsigned short是16位,范围0 to 65,535,这样int型的足够表示unsigned short类型的数据,所以在混有这二者的运算中,unsigned short类型数据被转换为int型数据
四、unsigned int 与long类型的转换规律同3,在32位机上,unsigned int是32位,范围0 to 4,294,967,295,long是32位,范围–2,147,483,648 to 2,147,483,647,可见long类型不够表示全部的unsigned int型,所以在混有unsigned int及long的表达式中,二者都被转换为unsigned longimg
五、若是表达式中既有int 又有unsigned int,则全部的int数据都被转化为unsigned int类型co
1329

被折叠的 条评论
为什么被折叠?



