zoukankan      html  css  js  c++  java
  • java中int取值范围是怎么计算的?

    首先jdk中定义int占4个字节 ===> 32位(后面全部的计算都是以此为根据的)

    32位就是jvm仅仅给分配32个格子的空间,用以存放数据。

    总所周知计算机中用0和1存放数据。

    那么,32个格子中放满0或1的方法 有2的32次方种:

    所以。这32个格子中。或者说32位的空间能标识10进制的数字:

    最小

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    最大

    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

    第一种推算法:将二进制最大的数字(32个1)转换成10进制,即 4294967296;

    另外一种推算法:既然有2的32次方种算法,那么依照10进制最大的数就是2的32次方。即4294967296;


    可惜。上面这样的计算的是无符号。即正数。可是java中int有正负之分。所以32个格子中占用一个格子标识正负。

    所以仅仅能用31个格子来标识数值。

    下图:

    X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    x为0 1来标识正负。


    最后int能标识的最大/最小数字是:2的31次方:+/- 2147483648

  • 相关阅读:
    路飞学城Python-Day142
    路飞学城Python-Day141
    路飞学城Python-Day140
    路飞学城Python-Day136
    路飞学城Python-Day137
    路飞学城Python-Day117
    java基础知识总结
    Maven
    MySql实现分页查询
    js中的正则表达式入门
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6748968.html
Copyright © 2011-2022 走看看