int取值范围
总所周知int类型在计算机中占4个字节、4*8=32位,因此int类型数据的取值范围为:-231 ~ 231-1
即:-2147483648 – 2147483647,那么这是如何得来的呢?
在计算机中数据都是由二进制表示,数据存储时首位作为符号位控制数的正负,例如对于原码:
0000 0000 | 0000 0000 | 0000 0000 | 0000 0001 ———— 表示 +1
1000 0000 | 0000 0000 | 0000 0000 | 0000 0001 ———— 表示 -1
而在实际存储的过程中,所有数值都是按照补码来存储的。
关于计算机为什么要用补码可见此处
因此对于 正数 来说原码即是补码,其所能表示的最大数为:
0111 1111 | 1111 1111 | 1111 1111 | 1111 1111 ———— 表示 231-1 = 2147483647
而对于 负数 来说补码为原码除符号位之外取反后加1(或除符号位之外最后一位1的前面其他位置取反),其所能表示的最小负数为:
1000 0000 | 0000 0000 | 0000 0000 | 0000 0001 ———— 补码
1111 1111 | 1111 1111 | 1111 1111 | 1111 1111 —————– 原码,表示 -231+1 = -2147483647
少了一位 -231 ?那么为什么说int类型数据的取值范围为 -231 ~ 231-1 呢?
我们先来看一下数 零 的表示:
0000 0000 | 0000 0000 | 0000 0000 | 0000 0000 ———— 表示 +0
1000 0000 | 0000 0000 | 0000 0000 | 0000 0000 ———— 表示 -0
0竟然有两种表示方法?那么既然这么浪费为什么不加以利用起来呢?
因此规定:1000 0000 | 0000 0000 | 0000 0000 | 0000 0000 即 -0 表示 -231 ,于是便有了 -0 是最小的负数这句话了。
今天的文章int数据类型的取值范围分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/28901.html