zoukankan      html  css  js  c++  java
  • java 基本数据类型的取值范围

    讲解基本类型的取值范围之前,先讲讲二进制怎么转换为十进制(算取值范围的时候会用到)。

    首先二进制有带符号的二进制和不带符号的二进制。

    比如:1111

    如果它是不带符号的二进制,那么它的十进制值 = 2^3 + 2^2 + 2^1 + 2^0 = 2^4 - 1 = 15

    如果它是带符号的二进制,那么最高位(千位)就是符号位,1代表负数,0代表正数。那么负的二进制怎么换算为十进制呢?首先要把除符号位的所有位按位取反再加1(算出来是1001),然后在算它的十进制值 = -2^0 = -1

    Java中基本类型的取值范围

    基本类型 字节数 位数 最大值 最小值
    byte 1byte 8bit 2^7 - 1 -2^7
    short 2byte 16bit 2^15 - 1 -2^15
    int 4byte 32bit 2^31 - 1 -2^31
    long 8byte 64bit 2^63 - 1 -2^63
    float 4byte 32bit 3.4028235E38 1.4E - 45
    double 8byte 64bit 1.7976931348623157E308 4.9E - 324
    char 2byte 16bit 2^16 - 1 0

    其实,这些取值范围不需要死记,可以通过位数计算出来,下面举两个例子(byte和char)说明一下

    byte的情况:

    byte占8位,而且有正有负。最大值当然就是01111111 = 2^7 - 1。因为负的二进制有个按位取反再加1的操作,所以最小值是10000000,按位取反后为11111111,再加1后为110000000 = -2^7

    char的情况:

    char占16位,而且没有负值。所以最小值是0。最大值是1111111111111111 = 2^16 - 1

  • 相关阅读:
    07hibernate_one2one_ufk_1
    05hibernate_one2one_pk_1(forget)
    01hibernate_first
    蜂蜜 与 营养
    06hibernate_one2one_pk_2(you can forget)
    DLL,DML,DCL,TCL in Oracle
    04hibernate_many2one_cascade
    02hibernate_session
    03hibernate_basemapping_uuid_native_assigned
    各地工资水平
  • 原文地址:https://www.cnblogs.com/pbq-dream/p/5291178.html
Copyright © 2011-2022 走看看