c语言,什么是有符号整型与无符号整型?麻烦再举个例子。谢谢

如题所述

同样是16位二进制的整数,
short int x;
unsigned short int y;
有符号整型 要 消耗 1 位 用来做符号,剩下的15位 用来存数值。
与无符号整型 不需要符号位,16位 用来存数值。
所以他们表示的数值范围不同。

有符号整型,正数用原码表示,负数用补码表示,最小负数(绝对值最大)是 1000 0000 0000 0000 (16进制 0x8000), 最大正数 0111 1111 1111 1111 (16进制 0x7fff).

无符号数 用原码表示,最小 0, 最大 1111 1111 1111 1111 (16进制 0xffff).

用 C 语言打印出数值来:
printf("I: %d %d\n", (short) 0x8000, (short) 0x7fff);
printf("U: %u ", (unsigned short) 0xffff );

I: -32768 32767
U: 65535
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-17
整型数据,占两个字节,16位
unsigned int 表示无符号整型数,范围是 0-65535,2的16次方等于65536
int 表示有符号整型数,范围是 -32768到32767,即实际数据是15位,最高位是符号位
第2个回答  2019-09-21
无符号整型就是
unsigned
int
如果在内存中存储一个2进制数
1111
1111
如果是无符号整型
那么这个数就是255
有符号的话
这个数就是
-1
长整型
如果短整型占2个字节
长整型占4个字节
短整型
能表示-2^8~2^8
长整型
能表示-2^16~2^16
第3个回答  2009-07-16
无符号整型是 unsigned int 表示数的范围是 0-65535
有符号整型 int 表示数的范围是 -32768到32767