Java连载14-补码简介&浮点型整数

2019-08-16 12:18:34来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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.总结:当一个整数字面值没有超出byte\short\char的取值范围时?,这个字面值可以直接赋给byte\short\char类型的变量。这种机制sun?公司允许了,目的就是为了方便程序员的编程?。

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

1.首先介绍一下

(1)SE类库字节码?:C:\Program Files\Java\jdk1.8.0_211\jre\lib\rt.jar

(2)SE?类库源码:C:\Program Files\Java\jdk1.8.0_211\src.zip

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

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.欢迎关注微信公众号:傅里叶变换,后台回复”礼包“,获取大数据学习资料

 

 


原文链接:https://www.cnblogs.com/ruigege0000/p/11332508.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:spring整合MQ

下一篇:Spring事件监听器源码