c语言整数的范围

在8位位宽中,为什么整数的范围是-2^7~(2^7-1)正整数要比负整数小一呢?... 在8位位宽中,为什么整数的范围是-2^7~(2^7-1) 正整数要比负整数小一呢? 展开
 我来答
吉祥二进制
高粉答主

推荐于2017-09-16 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84583

向TA提问 私信TA
展开全部

C语言整型,一般分为char类型和int类型,不同的类型取值范围也不尽相同。在32位系统中:

char取值范围:-128~127

unsigned char取值范围:0~255

int取值范围:-2147483648~2147483647

unsigned int取值范围:0~4294967295


在c语言中可以通过C标准库中的limits.h头文件,来直接使用整型类型的最大值和最小值 。示例如下:

#include <stdio.h>
#include <limits>
int main()
{
printf("char取值范围:%d~%d\n",CHAR_MIN, CHAR_MAX );
printf("unsigned char取值范围:%u~%u\n",0, UCHAR_MAX);
printf("int取值范围:%d~%d\n", INT_MIN, INT_MAX);
printf("unsigned int取值范围:%u~%u\n", 0, UINT_MAX);
return 0;
}
起床吃饭
2008-04-24 · TA获得超过232个赞
知道答主
回答量:130
采纳率:0%
帮助的人:201万
展开全部
因为它用了最高一位来作为符号位,0 xxxxxxx与1 xxxxxxx表示的数字个数是一样的,0 0000000来表示0,而1 0000000则表示-1,那么正数会比负数少一个,因此正整数会比负整数小一。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在太平塔蹦极的三角枫
2008-04-24 · TA获得超过104个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:70.8万
展开全部
对于0,原码机器中往往有“+0”、“-0”之分,故有两种形式:
[+0]原=0.000...0
[ -0]原=1.000...0

若原码小数的位数是8位时,其该数表示的最大值、最小值:
8位: 127/128,-127/128

而机器使用补码表示
机器中没有“+0”、“-0”之分,只有[0]补=0.000...0

若补码整数的位数是8位,其表示的最大值、最小值: -128 -- 127
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
用的人还挺多呢
2008-04-24 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:124万
展开全部
因为还有一个0呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
langhua712
2008-04-24
知道答主
回答量:14
采纳率:0%
帮助的人:10.5万
展开全部
没错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式