c语言中,基本数据类型的数值范围是怎么计算出来的?

发布网友 发布时间:2022-03-25 18:05

我来回答

3个回答

热心网友 时间:2022-03-25 19:34

你这里对应的int是16位的,最高位是符号位,表示正负,还有15位用来表示数值,于是就有int的数据范围是-2^15~(2^15-1)
2^15就是2的15次幂,也就是15个2相乘。int类型15位数值位,每位有0,12种状态,全排列就是2^15,正负数全算上,就是其数据范围了。

热心网友 时间:2022-03-25 20:52

假设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

热心网友 时间:2022-03-25 22:27

byte\char->int
int->long
long->float
float->double
具体就是小的向大的转换,这是隐式转换。显示转换可以是大的向小的转换,不过可能会引起数据溢出,需谨慎。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com