c语言中,基本数据类型的数值范围是怎么计算出来的?
3个回答
展开全部
假设int类型是8位的整形数据类型,正数是从(0000,0000)B到(0111,1111)B,
二进制1000,0000表示的是2^8,所以0111,1111则是1000,0000B-1所得,即2^8-1,这是正数的最大值,负数最高位是固定的为1,所以负数的时候从1000,0000(即为-0)到1111,1111(最高位是符号位,不参与运算)这个数,所以他的范围是-2^8
二进制1000,0000表示的是2^8,所以0111,1111则是1000,0000B-1所得,即2^8-1,这是正数的最大值,负数最高位是固定的为1,所以负数的时候从1000,0000(即为-0)到1111,1111(最高位是符号位,不参与运算)这个数,所以他的范围是-2^8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
byte\char->int
int->long
long->float
float->double
具体就是小的向大的转换,这是隐式转换。显示转换可以是大的向小的转换,不过可能会引起数据溢出,需谨慎。
int->long
long->float
float->double
具体就是小的向大的转换,这是隐式转换。显示转换可以是大的向小的转换,不过可能会引起数据溢出,需谨慎。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询