zoukankan      html  css  js  c++  java
  • Java连载14-补码简介&浮点型整数

    一、补码简介

    1.计算机中的符号数有三种表示方式,即为:原码、反码、补码。三种表示方法均有符号位和数值位,符号位都是0表示正数,符号位都是1表示负数。

    2.计算机中的数字的存储方式:在计算机系统中,数值一律用补码来表示和存储,原因在于:使用补码可以将符号位和数值域统一处理,同时,加法和减法可以统一处理

    3.补码的计算方式:两种情况:

    (1)正数的补码和原码是相同的

    (2)负数的补码:我们将符号位变为0(也就是说选用负数的正数位),然后所有的数字取反,再加1,我们便得到了负数的补码(也可以这样说复数的绝对值对应的二进制码所有二进制位取反,再加1)

    例子:我们连载13中

            int i1 = 128;
    
            byte i2 = (byte)i1;
    
            System.out.print(i2);

    i1为:00000000 00000000 00000000 10000000

    强制类型转换后为:100000000

    因此这是补码(计算机存储的),减1为01111111,再取反10000000这就是128,因为这是负数的,因此为-128

    ​4.总结:当一个整数字面值没有超出byteshortchar的取值范围时​,这个字面值可以直接赋给byteshortchar类型的变量。这种机制sun​公司允许了,目的就是为了方便程序员的编程​。

    二、精度损失(浮点型数据类型)

    1.首先介绍一下

    (1)SE类库字节码​:C:Program FilesJavajdk1.8.0_211jrelib t.jar

    (2)SE​类库源码:C:Program FilesJavajdk1.8.0_211src.zip

    2.在java语言中,所有的浮点型字面值,默认时当作double类型来处理,要想该字面值当作float类型来处理,需要在字面值后面加上fF

    3.​注意:double和float在计算机内部的二进制存储的时候存储的都是近似值​。在现实世界中有些数字是无限循环的,在有限的资源里存储无限的数字都只能​时近似值。

            double i3 = 23.0;
    
            float i4 = 23.0F;
    
            System.out.println(i3);
    
            System.out.print(i4);

    二、源码:

    d14_float_type_and_accuracy_loss.java

    地址:https://github.com/ruigege66/Java/blob/master/d14_float_type_and_accuracy_loss.java

    2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    spring中@Autowired与 @Resource区别
    linux系统镜像iso文件下载
    log4j.properties配置说明学习网址
    maven常用命令
    mysql优化
    mybatis与hibernate区别
    struts2与SpringMVC区别
    java同步锁实现方法
    java多线程的四种实现方式
    java单例模式几种实现方式
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/11332508.html
Copyright © 2011-2022 走看看