c语言,什么是有符号整型与无符号整型?麻烦再举个例子。谢谢
4个回答
展开全部
同样是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
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
展开全部
整型数据,占两个字节,16位
unsigned int 表示无符号整型数,范围是 0-65535,2的16次方等于65536
int 表示有符号整型数,范围是 -32768到32767,即实际数据是15位,最高位是符号位
unsigned int 表示无符号整型数,范围是 0-65535,2的16次方等于65536
int 表示有符号整型数,范围是 -32768到32767,即实际数据是15位,最高位是符号位
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
无符号整型就是
unsigned
int
如果在内存中存储一个2进制数
1111
1111
如果是无符号整型
那么这个数就是255
有符号的话
这个数就是
-1
长整型
如果短整型占2个字节
长整型占4个字节
短整型
能表示-2^8~2^8
长整型
能表示-2^16~2^16
unsigned
int
如果在内存中存储一个2进制数
1111
1111
如果是无符号整型
那么这个数就是255
有符号的话
这个数就是
-1
长整型
如果短整型占2个字节
长整型占4个字节
短整型
能表示-2^8~2^8
长整型
能表示-2^16~2^16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
无符号整型是 unsigned int 表示数的范围是 0-65535
有符号整型 int 表示数的范围是 -32768到32767
有符号整型 int 表示数的范围是 -32768到32767
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询