• 面试:short最大值加1的结果


    已知Java语言中int类型所能表示的最大整数为2147483647,请问以下代码执行结果是什么?

    一部分人都会认为这段程序压根就无法通过编译,也有人认为,这段程序能够通过编译,但在运行时会抛出异常,但更多的人面对这道题目根本就无从下手。那么正确答案是什么呢?首先告诉大家,这段程序能够顺利通过编译,并且在运行时也不会出现异常,运行的结果是在控制台上输出了数字-2147483648!而-2147483648正好是Java语言中int类型所能表示的最小整数。

    大家都知道:任何一个数字,存储到计算机当中,都是以二进制的形式进行存储的。在Java语言中,使用补码的形式来表示数字。那么补码是个什么东西呢?补码就是计算机用二进制的形式表示数字的一种规则。它的算法很简单:用最左边的一个二进制位表示数字的正负,0表示正数,1表示负数,我们把表示符号的这个二进制位叫做“符号位”,而剩余的二进制位表示数字本身。至于怎样用其余的二进制位表示数字,正数和负数略有区别。我们首先来说正数的情况。对于正数而言,直接用剩余二进制位表示这个数字就可以了。而对于负数而言,算法稍微复杂一点,分为两步:

    一、用补码表示出这个数的绝对值,之后把每个位上的数字(连同符号位上的数字在内)按位取反,所谓按位取反就是如果这个位上原来是0,那么就变成1,如果原来这个位上原来是1,那么就变成0。

    二、就是把这个取反以后的数字加上1,就得到了负数的补码表示结果。

    java short类型占几个字节?

    short类型占2个字节,16位。

    字节:byte,用来计量存储容量的一种计量单位,位(bit)。

    一个字节等于8位 1byte = 8bit。

    java short类型

    short 数据类型是 16 位、有符号的以二进制补码表示的整数

    最小值是 -32768(-2^15);

    最大值是 32767(2^15 - 1);

    1. short aa = (short)(Short.MAX_VALUE + 1);
    2. System.out.println(aa);//-32768
    3. short bb = (short)(Short.MIN_VALUE);
    4. System.out.print(bb);//-32768

    最大值加1,溢出,结果为最小值 -32768

    总结:int short的最大值加1,都变为了最小负值

    Java 整数类型

    Java各整数类型有固定的表数范围和字段长度,其不受操作系统的影响,以保证Java程序的可移植性。

    Java语言的整形常量默认为int型,声明long型后面需加上l或者L,否则会出错

    类型占用存储空间表数大小
    byte1字节-128-127
    short2字节-215~215-1
    int4字节-231~231-1
    long8字节-263~263-1
  • 相关阅读:
    IDEA中debug调试模拟时显示不全(不显示null)的解决
    合并有序链表C++递归
    [2024年]-flink面试真题(三)
    动漫主题dreamweaver作业静态HTML网页设计——仿京东(海贼王)版本
    Himall商城- web私有方法
    Python装饰器
    站长号词库:今日热门长尾关键词挖掘 20221201
    C++ Reference: Standard C++ Library reference: C Library: cwctype: towlower
    camera项目相关路径
    【web-避开客户端控件】(2.3.2)收集使用数据:拦截浏览器扩展的流量
  • 原文地址:https://blog.csdn.net/cpcpcp123/article/details/127813565