A. 究竟c语言中的signed与unsigned有什么用
一般用来定义整型变量(int或long)
signed
表示是有符号数
unsigned表示无符号数,最高位是符号位
B. C语言中unsigned和signed在声明时有什么作用
主要是取值范围。
unsigned和signed在一种类型下,unsigned表示在这个范围大小的整数,signed一般都是在这个范围内的从负到正。
C. 关于C语言中有符号型signed和无符号型unsigned的区别
1、表达数值范围的不同
signed表示有符号的,其第一个位表示正负,其余位表示大小,例如signedint大小区间为-128~127。
unsigned表示无符号的,所有位都为大小,没有正负,例如unsignedint大小区间为0~127。
2、类型的不同
signed类型的整数,只用了去除最高位,剩下的15位来进行编码的,而最高位只是用来做标记(sign),标记整数的正负,0表示正,1表示负。所以对于signed的整数,的存储范围是(-2^15to2^15-1),也就是-32768到+32767的整数。
而对于unsigned的整数,其16位全部用来编码,存储范围便是(0to2^16-1),即0到65535的非负整数。所以呢你可以声明inta=1,或者inta=-1,但是不可以声明unsigneda=-1。但是需要提到的一点是,不管整数的类型是signed还是unsigned,都用了16位来存储,也就是说16位全部用来存储数据。
3、表达的数值不同
signed类型的整数只用了除去最高位剩余的15为进行编码,最高位用来标记整数的正负,0表示正,1表示负。所以对signed的整数存储范围为(-2^15~2^15-1)。
unsigned类型的整数其16为全部用来编码,则unsigned的整数存储范围为(0~2^16-1)。
D. C语言中a=(signed long)b;什么意思
将b强转为signed long类型后赋值给a。
比如
signed long a=0;
int b=1;
如果直接a=b的话会提示类型不匹配(int型的值赋给了long)
所以,需要把b先进行个强制转换为signed long,再匹配给a。
强转时注意是否会造成溢出~比如一个long的数据转换为一个short的时候。。。。
E. C语言中unsigned和signed在声明时有什么作用
1、unsigned的作用就是将数字类型无符号化, 例如 int 型的范围:-2^31 ~2^31 - 1,而unsigned int的范围:0 ~ 2^32。看起来unsigned 是个不错的类型,尤其是用在自增或者没有负数的情况。但是在实际使用中会出现一些意外的情况。
2、signed在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据。
(5)sigend在c语言中是什么扩展阅读:
unsigned和signed的区别
1、所有比int型小的数据类型(包括char,signed char,unsigned char,short,signed short,unsigned short)转换为int型。如果转换后的数据会超出int型所能表示的范围的话,则转换为unsigned int型
2、bool型转化为int型时,false转化为0,true转换为1;反过来所有的整数类型转化为bool时,0转化为false,其它非零值都转为true
3、如果表达式中混有unsigned short和int型时,如果int型数据可以表示所有的unsigned short型的话,则将unsigned short类型的数据转换为int型,否则,unsigned short类型及int型都转换为unsigned int类型
举个例子,在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型
4、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 long
5、如果表达式中既有int 又有unsigned int,则所有的int数据都被转化为unsigned int类型
F. C语言中“signed”的作用是什么
表示有符号型的
一般默认的就是有符号型的
比如
int a;
其实编译器就认为你是
signed int a;
unsigned int a;就是无符号的
G. C语言中usigned是什么意思
signed
表示有符号,即分正负
unsigned
表示无符号,只能表示0或者正数
H. C语言中的有符号和无符号是什么意思给仔细讲讲
有符号就是signed:在存放整数的储存单元中,最左边的一位是表示符号位,该位为0,表示数值为正,1为负.无符号就是unsigned:就是最左边的那一位没有符号位