在java中的整数类型有四种,分别是 byte  short int long 其中byte只有一个字节 0或1,在此不详细讲解。

其他的三种类型如下:

1、
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768 (-2的15此方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)

2、
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647  (2的31次方-1)

3、
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)

拿short类型举例:

  首先需要明白在计算机中最高位为符号位,0表示正数,1表示负数。在计算机中数据是使用其补码表示的,但正数补码是其本身,负数的补码是负数的源码取反加一得到的补码。

    一、正数的原码、反码、补码都相等 
    例:0000 1010(在十进制中表示+10,左数第一位为符号位) 
    它的原码、反码、补码都是0000 1010 
    二、负数的原码是其本身,负数的反码是将符号不变,把符号后边的数取反,对于负数的补码 是把原码取反后加1 
    例:1000 1010(在十进制中表示-10) 
    它的原码是 1000 1010 
    它的反码是 1111 0101 
    它的补码是 1111 0110

    例如short类型: -1  二进制标示: 10000000 00000001(最大的负整数-1 )

          取反:          11111111 11111110  

          加1 补码:      11111111 11111111  (最大的负整数-1在计算机中的标示方法)

明白了 以上这些再说short的二进制标示:

    先看这个: 最小的负整数 -32768     计算机中二进制标示:10000000   00000000

          最大的负整数-1     计算机中二进制标示:11111111  11111111

          0           计算机中二进制标示:00000000  0000000

         最小的正整数 1               计算机中二进制标示: 00000000 00000001

         最大的正整数:32767  计算机中二进制标示: 01111111  11111111

最小的负数-32768加1之后计算机中二进制标示为:10000000  00000001 一直加1直到到 11111111 11111111(-1)达到最大的负整数,然后再加1变为:1 00000000  0000000   注意此处字节长度为 17位,而short类型只取 16位即:00000000  0000000   所以-1+1之后变为0 然后00000000 00000000再一直加1直到 01111111  11111111 达到最大正整数(32767),32767再加1变为:10000000   00000000 即为最小的负整数 -32768(2^15)

如图标示:  

java中整数类型(short int long)的存储方式的更多相关文章

  1. 谈谈Java中整数类型(short int long)的存储方式

    在java中的整数类型有四种,分别是byte short in long,本文重点给大家介绍java中的整数类型(short int long),由于byte只是一个字节0或1,在此就不多说了,对ja ...

  2. Java进阶(二十三)java中long类型转换为int类型

    java中long类型转换为int类型 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参 ...

  3. java中的char,short,int,long占几个字节

    1:“字节”是byte,“位”是bit : 2: 1 byte = 8 bit : char 在java中是2个字节.java采用unicode,2个字节(16位)来表示一个字符. short 2个字 ...

  4. java中long类型转换为int类型

    由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一.强制类型转换 [java] l ...

  5. java 中整数类型的进制转换

    int a=10; Integer.toBinaryString(a); //转换成2进制Integer.toOctalString(a);  //转换成8进制Integer.toHexString( ...

  6. Java中枚举类型Enum的一种使用方式

    枚举类定义如下: public enum Status { SCUUESS("1", "成功"), FAILED("2", "失败 ...

  7. 【转】java中byte数组与int类型的转换(两种方式)----不错

    原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...

  8. Java中的Integer和int

    Java中的Integer是引用类型,而int是基本类型.Integer是int的包装器类型. java中的基本类型有布尔类型boolean;字符类型char;整数类型byte,int,long,sh ...

  9. JAVA中值类型和引用类型的不同(面试常考)

    转载:https://www.cnblogs.com/1ming/p/5227944.html 1. JAVA中值类型和引用类型的不同? [定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个 ...

随机推荐

  1. 关于ExpandableListView用法的一个简单小例子

    喜欢显示好友QQ那样的列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到an ...

  2. 转:GBDT(MART) 迭代决策树入门教程 | 简介

    在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又 叫 MART(Multiple Additive R ...

  3. C#实现数字字符串左补齐0的3种方法

    int n = 3; string s = n.ToString().PadLeft(4, '0'); //0003 s = string.Format("{0:d4}", n); ...

  4. JaxWsDynamicClientFactory弃用了,改成org.codehaus.xfire.client;

    搞了好几天jar包冲突,最后修改接口调用方式 java.lang.IllegalStateException: Unable to create JAXBContext for generated p ...

  5. Eclipse中新建jsp文件访问页面时乱码问题

    新建.jsp文件,charset和pageEncoding默认是ISO-8859-1,这样的话访问页面时会出现乱码,解决办法:将charset和pageEncoding改为UTF-8(或者GBK/GB ...

  6. [oracle] 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed

    Windows 64位下装Oracle 11g 64位,PLSQL Developer使用出现以下问题: 1.Database下拉框为空: 2.强制输入用户名.密码及Database,登录弹出: In ...

  7. row_number()over(order by id) SQL顺序排列

    select *,row_number()over(order by id) as number_id from [dbo].tb_pccw20140213

  8. 【Executor】配置ThreadPoolExecutor

    来自为知笔记(Wiz) 附件列表

  9. NTFS文件系统简介(转载)

    原文地址:http://www.cnblogs.com/watertao/archive/2011/11/28/2266595.html 1.简介 NTFS(New Technology File S ...

  10. c++随机数生成

    算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子.(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535, ...