首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中找到正确的数据类型来存储给定的整数?

问如何在Java中找到正确的数据类型来存储给定的整数?
EN

Stack Overflow用户
提问于 2022-10-22 04:33:31
回答 1查看 46关注 0票数 1

假设给了我一个数字,并要求我找出哪种数据类型适合存储它。例如,假设这个数字是741,那么它可以存储在short、int以及long数据类型中。但是,如果输入的数字很大,那么它只能存储在长数据类型中。根据用户输入的数字,我需要提供可用于存储它的所有可能的数据类型。

PS:这是一个在带有Java数据类型的Hackerrank平台上出现的问题。问题链接:- https://www.hackerrank.com/challenges/java-datatypes/problem?h_r=next-challenge&h_v=zen&isFullScreen=false

EN

回答 1

Stack Overflow用户

发布于 2022-10-22 05:55:45

您可以使用原始数据类型包装器,它们都包含一个常量值和它们可以保持的max和min值。

它们是:

代码语言:javascript
复制
Byte.MIN_VALUE; //-128

Byte.MAX_VALUE; //127

Short.MIN_VALUE; //-32768

Short.MAX_VALUE; //32767

Integer.MIN_VALUE; //0x80000000

Integer.MAX_VALUE; //0x7fffffff

Long.MIN_VALUE; //0x8000000000000000L

Long.MAX_VALUE; //0x7fffffffffffffffL

这是我的解决方案:

代码语言:javascript
复制
    long n = 0;
    try {
        n = new Scanner(System.in).nextLong();
    } catch (InputMismatchException e) { //we're expecting just numbers anyway
        System.out.println("doesn't fit anywhere");
    }
    
    if (n > 0) {
        //since n is positive,
        //first let's evaluate if it's not too big to fit in a byte data type
        if (n <= Byte.MAX_VALUE) System.out.println("fits in a byte");
        
        //now let's evaluate if n is not too big to fit in a short data type
        if (n <= Short.MAX_VALUE) System.out.println("fits in a short");
        
        //now let's evaluate if n is not too big to fit in an int data type
        if (n <= Integer.MAX_VALUE) System.out.println("fits in an int");
        
        
    } else {
        //similar code for negative numbers
        if (n >= Byte.MIN_VALUE) System.out.println("fits in a byte");
        if (n >= Short.MIN_VALUE) System.out.println("fits in a short");
        if (n >= Integer.MIN_VALUE) System.out.println("fits in an int");
    }
    //well, since we already verified n doesn´t overtake a long with try block
    // n will always fit in a long
    System.out.println("fits in a long");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74161090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档