java中整数类型(short int lang)的存储方式

在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)

如图标示:  

时间: 2024-10-11 01:10:50

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

java中整数类型的2进制表示

java中的4种整数类型:byte,short,int,long均采用补码表示. 如下图右边所示 在java中对二进制数没有"字面"表示方法.十六进制可以用OX或者Ox指示,八进制可以用O指示. 下面的代码可以输出byte类型的数据的2进制表示形式: public class Test { public static void main(String[] args) { byte a = -128; test(a); } public static void test(byte m){

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

1:"字节"是byte,"位"是bit : 2: 1 byte = 8 bit : char 在java中是2个字节.java采用unicode,2个字节(16位)来表示一个字符. short 2个字节int 4个字节long 8个字节 原文地址:https://www.cnblogs.com/xiaozhijing/p/8295885.html

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

枚举类定义如下: package com.qunar.enumtest; public enum Status { SCUUESS("1", "成功"), FAILED("2", "失败"); private String value; private String desc; public String getValue() { return value; } public void setValue(String valu

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

原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. 第一种方法: public static byte[] int2byte(int

java中byte数组与int类型的转换(两种方式)

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. 方法一 /** * int到byte[] * @param i * @return */ public static byte[] intToByteArray(int i) { byte[] resu

Java中值类型与引用类型

JAVA中值类型和引用类型的不同? 1.定义 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变:值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变.通俗说法: 值类型就是现金,要用直接用:引用类型是存折,要用还得先去银行取现. 2.分类 (1)值类型 值类型也就是基本数据类型 基本数据类型常被称为四类八种. 四类:1.整型 2.浮点型 3.字符型4.逻辑

java中基本类型封装对象所占内存的大小(转)

这是一个程序,java中没有现成的sizeof的实现,原因主要是java中的基本数据类型的大小都是固定的,所以看上去没有必要用sizeof这个关键字. 实现的想法是这样的:java.lang.Runtime类中有一些简单的能涉及到内存管理的函数: Every Java application has a single instance of class Runtime that allows the application to interface with the environment in

Object,scanner,String,StringBuffer,Java中基本类型的包装类型等

一.Scanner类 Scanner类:简单文本扫描器1.键盘录入步骤:(1)需要创建键盘录入对象:Scanner 键盘录入对象=new Scanner(System.in):(2)导包:import java.util.Scanenr(快捷键:ctrl+shift+o):(3)接收数据:XXX 变量名= 键盘录入对象.nextXXX():(例如:int 变量名=键盘录入对象.nextInt():).2.构造方法public Scanner(InputStream source):以输入流形式录

java中字符串String 转 int(转)

java中字符串String 转 int String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法:i=Integer.valueOf(s).intValue(); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? int -> String int i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=