zoukankan      html  css  js  c++  java
  • Java中的强制类型转换

    例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢?

    显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小。此时就需要通过强制类型转换来实现了。

    public class HelloWorld{
        public static void main(String[] args) {
            double heightAvg1=176.2;
            int heightAvg2=(int)heightAvg1;
            System.out.println(heightAvg1);
            System.out.println(heightAvg2);
        }
    }

    一开始heightAvg1double类型的,转换成int类型的话要(int)heightAvg1

    规律一:当把大的类型转化为小的类型的时候,因为补码的换算问题,所以可能会产生一些想不到数据

    int  i = 35;
    byte b = (byte)i;

    运行结果:35

    int  i = 128;
    byte b = (byte)i;

    运行结果:-128


    规律二:小数在转化为整数的时候是舍弃小数位

    double d = 6.4;
    int i = (int)d;

    运行结果:6


    扩展:数据的原反补三码

    数据类型的最高位是符号位 --- 如果最高位是0,则表示一个正数;如果最高位是1,则表示一个负数。

    计算机中存储的是数据的补码,计算的也是数据的补码

    直接计算出来的二进制数字是数据的原码

    如果是正数,那么原反补三码一致

    int i = 7;

    00000000 00000000 00000000 00000111 原码

    00000000 00000000 00000000 00000111 反码

    00000000 00000000 00000000 00000111 补码

    如果是负数,那么反码是在原码的基础上,最高位不变,其余位0<->1;补码是在反码的基础上+1

    int j = -9;

    10000000 00000000 00000000 00001001 原码

    11111111   11111111   11111111  11110110  反码

    11111111   11111111   11111111  11110111  补码

    注意:规定用-0表示当前类型的最小值

  • 相关阅读:
    统计0到n之间1的个数
    CUMCM--总结
    赫尔曼算法及应用
    css3实现连续不断的波浪
    svg优雅降级技术
    正则的一点经验
    vue 配合 element-ui使用搭建环境时候遇到的坑
    gulpfile.js备份
    最新版浏览器报错net::ERR_INSECURE_RESPONSE原因
    移动web端使用rem实现自适应原理
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9399316.html
Copyright © 2011-2022 走看看