当前位置:首页 > 编程笔记 > 正文
已解决

java中基本数据类型的最大值最小值理解

来自网友在路上 196896提问 提问时间:2023-11-21 23:02:19阅读次数: 96

最佳答案 问答题库968位专家为你答疑解惑

文章目录

    • 概要
    • 主要内容

概要

今天在复习java的Java基础常见面试题时对java中基本数据类型的上下限有了一些思考,接下来我会结合自身的理解进行讲述

主要内容

Java 中有 8 种基本数据类型,分别为:6 种数字类型:
4 种整数型:byte、short、int、long
2 种浮点型:float、double
1 种字符类型:char
1 种布尔型:boolean。
我们先单独来看int类型
java中int类型的包装类为Integer,我们来看一下它的源代码

public final class Integer extends Numberimplements Comparable<Integer>, Constable, ConstantDesc {/*** A constant holding the minimum value an {@code int} can* have, -2<sup>31</sup>.*/@Native public static final int   MIN_VALUE = 0x80000000;/*** A constant holding the maximum value an {@code int} can* have, 2<sup>31</sup>-1.*/@Native public static final int   MAX_VALUE = 0x7fffffff;/*** The {@code Class} instance representing the primitive type* {@code int}.** @since   1.1*/@SuppressWarnings("unchecked")public static final Class<Integer>  TYPE = (Class<Integer>) Class.getPrimitiveClass("int");/*** All possible chars for representing a number as a String*/static final char[] digits = {'0' , '1' , '2' , '3' , '4' , '5' ,'6' , '7' , '8' , '9' , 'a' , 'b' ,'c' , 'd' , 'e' , 'f' , 'g' , 'h' ,'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,'o' , 'p' , 'q' , 'r' , 's' , 't' ,'u' , 'v' , 'w' , 'x' , 'y' , 'z'};

我们可以通过Max_VALUE和MIN_VALUE轻易的获取到int类型的上下限
我们发现int类型的范围是-2147483648 ~ 2147483647
正数相对于负数减 1 了。这是为什么呢?这是因为在二进制补码表示法中,最高位是用来表示符号的(0 表示正数,1 表示负数),其余位表示数值部分。所以,如果我们要表示最大的正数,我们需要把除了最高位之外的所有位都设为 1。如果我们再加 1,就会导致溢出,变成一个负数。
而补码表示法中正数的补码等于其二进制表示也就是说int类型的最大值为01111111.。。。。等于2的31次方-1
而最小值为其绝对值的二进制表示法取反加1,最终可以获得的最小数即为10000.。。。。等于-2的31次方
如果仅仅是用第一位作为符号为,但是用普通的二进制表示法的话,对于正数来说,可以表示的最大数并没有变化,但是对于负数则变成了
-2的31次方-1,少表示了一个数
以上仅为个人理解,如果错误欢迎指出

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"java中基本数据类型的最大值最小值理解":http://eshow365.cn/6-41643-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!