java的基本数据类型有(int、byte、double、float、char、boolean、long、short);这里介绍整型数据

示例1:

public class H_Z01 {

  public static void main(String[] args) {
    int b = 350;
    byte a = (byte) 350 ;
  System.out.println(a);
  System.out.println(Integer.toBinaryString(b));

  }

}

输出为:

94
101011110

发生了截取,将前面的代码更新为:

public class H_Z01 {

  public static void main(String[] args) {
    int b = 350;
    byte a = (byte) 350 ;
    System.out.println(a);
    System.out.println(Integer.toBinaryString(b));
    System.out.println(Integer.valueOf("01011110",2).toString()) ;
  }

}

输出为:

94
101011110
94

一开始为从左为有移到使用的数据类型的位数。

例如:

350---->101011110

截取成为byte成为 01011110

但是看下面的示例自己就蒙了

示例2

public class H_Z02 {

  public static void main(String[] args) {
    int b = 450;
    byte a = (byte) 450 ;
  System.out.println(a);
  System.out.println(Integer.toBinaryString(b));

  }

}

输出为:

-62
111000010

按照更新代码后:

public class H_Z02 {

  public static void main(String[] args) {
    int b = 450;
    byte a = (byte) 450 ;
  System.out.println(a);
  System.out.println(Integer.toBinaryString(b));

  System.out.println(Integer.valueOf("11000010",2).toString()) ;

  }

}

输出为:

-62
111000010
66

认为第一位为符号为那么为11000010,那么应该取数值为0100010为66,那么1100010为-66

结果依然不正确。

查取资料获得技能:

除符号位取补码

先截取为11000010

那么为10111110

在进行计算:

public class H_Z02 {

  public static void main(String[] args) {
    int b = 450;
    byte a = (byte) 450 ;
  System.out.println(a);
  System.out.println(Integer.toBinaryString(b));

  System.out.println(Integer.valueOf("00111110",2).toString()) ;

  }

}

运行结果为:

-62
111000010
62

添加符号位:-62

与运行结果相同

总结:

java中整数溢出是取补

java基本数据类型转换溢出问题的更多相关文章

  1. Java基本数据类型转换及运算符

    上次我们说到完了Java中的基本数据类型,今天我们来说说Java中的基本数据类型转换和Java中的运算符 基本数据类型转换 java中可以从任意基本数据类型转型到外的基本数据类型 注意:(boolea ...

  2. Java基本数据类型转换

    一:Java的基本数据类型和引用数据类型 1:基本数据类型 2:引用数据类型 二:基本数据的类型转换 基本数据类型中,布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型 ...

  3. JAVA基本数据类型转换的注意事项

    JAVA中基本数据类型: 类型: 字节: 范围: 默认值: byte 1 -128~127 0 short 2 -32768~32767 0 char 2 0~65535 '\u0000' int 4 ...

  4. java基本数据类型转换成byte[]数组

    import java.io.UnsupportedEncodingException;  public class ConToByte {      /**     * double转换byte   ...

  5. java基本数据类型转换之向上转型和向下转换

    向上转换: 整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则: 容量小的类型可自动转换为容量大的数据类型: byte,short,char → int → long → float ...

  6. Java 基本数据类型转换

    1. Integer/int  转 String Integer a = 1; (int a = 1) String b = Integer.toString(a); 2. float 转 Strin ...

  7. Java基本数据类型转换二

    public class TestConvert2 { /** * @param args */ public static void main(String[] args) { // TODO Au ...

  8. Java基本数据类型转换一

    public class TestConvert { /**容量小的类型自动转化为容量大的类型数据类型按容量大小排列 * byte,short,char -> int ->long-> ...

  9. java基本数据类型转换字符串

    1.基本数据类型转换为字符串 int t1 = 2; String t2 = Integer.toString(t1); 2.字符串转换为基本数据类型 int t3 = Integer.parseIn ...

随机推荐

  1. keyvalue对RDD s

    scala> val input =sc.textFile("/home/simon/SparkWorkspace/test.txt")input: org.apache.s ...

  2. Hbase数据表解析

    demo为表的命名空间,user为表的名字you2个列族,一个为b.一个为o. NAME 为列族名,Replication_SCOPE实现一个远程集群的复制.compression数据压缩的类型 Hb ...

  3. SSM+shiro,所有配置文件,详细注释版,自用

    spring配置文件applicationContext.xml,放在resources下 <?xml version="1.0" encoding="UTF-8& ...

  4. SSM+shiro及相关插件的整合maven所有依赖,详细注释版,自用,持续更新

    整合了SSM+shiro框架,slf4j+logback日志,及一些好用的插件PageHelper,mybatis-generator,Lombok,fastjson等等 <?xml versi ...

  5. vue自定義指令

    自定義指令可以允許代碼複用, 全局自定義指令 vue.directive('指令名',{鉤子函數:指令函數}) 局部自定義指令: vue({ directives:{指令名:{鉤子函數:指令函數} } ...

  6. CentOS7 搭建影梭服务器

    安装Python包管理工具 yum install python-setuptools && easy_install pip 安装Shadowsocks pip install sh ...

  7. How to vi

    h:left,j:down,k:up,l:right.wq #write and quitx #cut one letterdd#cut one line/ #searchs/a/b/ #replac ...

  8. nvidia-smi实时刷新并高亮显示状态

    watch -n 1 -d nvidia-smi 间隔1秒刷新

  9. hdu-2072(字典树)

    字典树模板题 代码 #include<iostream> #include<algorithm> #include<cstdio> #include<cstr ...

  10. Stack Pointer Tracker

    在Intel 64与IA-32架构中,存在一类用于跳转到以及跳出程序段的指令:PUSH.POP.CALL.LEAVE与RET.这些指令可以在没有其余指令的干预下隐式地更新栈寄存器(ESP),维护栈内的 ...