发布网友 发布时间:2022-04-25 07:25
共3个回答
热心网友 时间:2023-01-27 19:57
int的取值范围为: -2^31——2^31-1,即-2147483648——2147483647
1、对于正数来说,它的补码就是它本身。
2、对于负数来说,它的补码是它对应的正数的二进数所有位取反之后加一。
3、由负数的补码求原码也是相同的操作(所有位取反+1)即为该负数的绝对值int是4个字节,32位,10000000 00000000 00000000 00000000是补码,第一位为符号位,1表示负数;
所以对剩下的位取反,结果为 1111111 11111111 11111111 11111111,加一后为10000000 00000000 00000000 00000000。
4、所以原码指的是-2^31=-2147483648,int的取值范围为-2^31——2^31-1。
扩展资料:
int类型在内存中占用了4个字节,也就是32位。int类型是有符号的,因此,32位并不会全部用来存储数据,使用最高位来存储符号,最高位是0,提示数据是正数,最高位是1,表示数据是负数,使用其他的31位来存储数据。
由于长整数是另外一个不同类型的整数,所以C语言为长整数规定了一种专门写法,其特殊之处是在表示数值的数字序列最后附一个字母“L”或“l”作后缀。由于小写字母“l”容易与数字“1”混淆,建议读者采用大写的“L”,下面是一些长整数的例子。
参考资料来源:百度百科-INT
热心网友 时间:2023-01-27 21:15
int的取值范围为: -2^31——2^31-1,即-2147483648——2147483647
1、对于正数来说,它的补码就是它本身。
2、对于负数来说,它的补码是它对应的正数的二进数所有位取反之后加一。
3、由负数的补码求原码也是相同的操作(所有位取反+1)即为该负数的绝对值
int是4个字节,32位,
10000000 00000000 00000000 00000000 是补码,第一位为符号位,1表示负数,所以
对剩下的位取反,结果为 1111111 11111111 11111111 11111111,加一后为10000000 00000000 00000000 00000000
4、所以原码指的是-2^31=-2147483648
int的取值范围为-2^31——2^31-1
一种推算法:将二进制最大的数字(32个1)转换成10进制,即 4294967296;另外一种推算法:既然有2的32次方种算法,那么依照10进制最大的数就是2的32次方。
上面这样的计算的是无符号。即正数。可是java中int有正负之分。所以32个格子中占用一个格子标识正负。所以仅仅能用31个格子来标识数值。
热心网友 时间:2023-01-27 22:50
int 范围值的大小是什么?