java中整数类型(short int long)的存储方式
在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)的存储方式的更多相关文章
- 谈谈Java中整数类型(short int long)的存储方式
在java中的整数类型有四种,分别是byte short in long,本文重点给大家介绍java中的整数类型(short int long),由于byte只是一个字节0或1,在此就不多说了,对ja ...
- Java进阶(二十三)java中long类型转换为int类型
java中long类型转换为int类型 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参 ...
- java中的char,short,int,long占几个字节
1:“字节”是byte,“位”是bit : 2: 1 byte = 8 bit : char 在java中是2个字节.java采用unicode,2个字节(16位)来表示一个字符. short 2个字 ...
- java中long类型转换为int类型
由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一.强制类型转换 [java] l ...
- java 中整数类型的进制转换
int a=10; Integer.toBinaryString(a); //转换成2进制Integer.toOctalString(a); //转换成8进制Integer.toHexString( ...
- Java中枚举类型Enum的一种使用方式
枚举类定义如下: public enum Status { SCUUESS("1", "成功"), FAILED("2", "失败 ...
- 【转】java中byte数组与int类型的转换(两种方式)----不错
原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...
- Java中的Integer和int
Java中的Integer是引用类型,而int是基本类型.Integer是int的包装器类型. java中的基本类型有布尔类型boolean;字符类型char;整数类型byte,int,long,sh ...
- JAVA中值类型和引用类型的不同(面试常考)
转载:https://www.cnblogs.com/1ming/p/5227944.html 1. JAVA中值类型和引用类型的不同? [定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个 ...
随机推荐
- 关于ExpandableListView用法的一个简单小例子
喜欢显示好友QQ那样的列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到an ...
- 转:GBDT(MART) 迭代决策树入门教程 | 简介
在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又 叫 MART(Multiple Additive R ...
- C#实现数字字符串左补齐0的3种方法
int n = 3; string s = n.ToString().PadLeft(4, '0'); //0003 s = string.Format("{0:d4}", n); ...
- JaxWsDynamicClientFactory弃用了,改成org.codehaus.xfire.client;
搞了好几天jar包冲突,最后修改接口调用方式 java.lang.IllegalStateException: Unable to create JAXBContext for generated p ...
- Eclipse中新建jsp文件访问页面时乱码问题
新建.jsp文件,charset和pageEncoding默认是ISO-8859-1,这样的话访问页面时会出现乱码,解决办法:将charset和pageEncoding改为UTF-8(或者GBK/GB ...
- [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 ...
- row_number()over(order by id) SQL顺序排列
select *,row_number()over(order by id) as number_id from [dbo].tb_pccw20140213
- 【Executor】配置ThreadPoolExecutor
来自为知笔记(Wiz) 附件列表
- NTFS文件系统简介(转载)
原文地址:http://www.cnblogs.com/watertao/archive/2011/11/28/2266595.html 1.简介 NTFS(New Technology File S ...
- c++随机数生成
算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子.(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535, ...