• 面试: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
  • 相关阅读:
    【个人简历】如何让人眼前一亮?简约大方(附模板)
    六年 Android 开发是如何从15K涨到30K?
    Allegro Design Entry HDL(OrCAD Capture HDL)显示管理菜单详细介绍
    20221204
    halcon算子1、dev_open_window
    vue-admin-beautiful老版本报vue-template-compiler错误解决方案
    Apache Doris (五十四): Doris Join类型 - Bucket Shuffle Join
    Java内存溢出的几个区域,注意避坑
    【python中处理日期和时间一】_time及calendar相关函数
    PostCSS概述
  • 原文地址:https://blog.csdn.net/cpcpcp123/article/details/127813565