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

Java连载14-补码简介&浮点型整数的更多相关文章
- Java连载73-String方法简介
一.字符串常用的方法 package com.bjpowernode.java_learning; public class D73_StringMethodBriefIntroduction { ...
- Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)
Java Content Repository API 简介 1 如果曾经试过开发内容管理应用程序,那么您应当非常清楚在实现内容系统时所遇到的固有难题.这个领地有点支离破碎,许多供应商都有自己的私有仓 ...
- 【译】Java SE 14 Hotspot 虚拟机垃圾回收调优指南
原文链接:HotSpot Virtual Machine Garbage Collection Tuning Guide,基于Java SE 14. 本文主要包括以下内容: 优化目标与策略(Ergon ...
- Jconsole: JAVA 监视和管理控制台简介
Jconsole: JAVA 监视和管理控制台简介 JDK中除了提供大量的命令行之外,还提供两个功能强大的可视化工具:JConsole和VisualVM. 之前对java的调试一直停留在 右键-> ...
- Lucene:基于Java的全文检索引擎简介
Lucene:基于Java的全文检索引擎简介 Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全文索引应用,而是是一个用J ...
- Java将ip字符串转换成整数的代码
下面代码是关于Java将ip字符串转换成整数的代码,希望对各位有较大用途. public class IpUtil { public static int Ip2Int(String strIp){ ...
- java assert的用法简介【转】
assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库 ...
- Java的MVC模式简介
Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件 ...
- Java JVM监控工具JConsole简介
Java JVM监控工具JConsole简介 jconsole命令 功能:打开java监视管理控制台 方法: jconsole [选项1] [选项2] …… [选项n] 常用选项: -help ...
随机推荐
- 004-python-列表、元组、字典
1. 什么是列表 列表是一个可变的数据类型 列表由[]来表示, 每一项元素使用逗号隔开. 列表什么都能装. 能装对象的对象. 列表可以装大量的数据 2. 列表的索引和切片 列表和字符串一样. 也有索引 ...
- SpringBoot使用Docker快速部署项目
1.简介 建议阅读本文最好对Dokcer有一些了解 首先我们先了解一下Docker是什么 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口.它是目前最流行的 Linux 容器 ...
- 双端队列 duque
一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. - 特性:deque 特殊之处在于添加和删除项是非限制 ...
- gePlugin封装成winform控件,一行代码即可加载。
将插件直接封装为控件,大大简化了GEPlugin的使用.多数常用功能也已经封装完毕,其他功能全部开放接口,直接调用即可. 1. GepluginControl控件传送门: 链接:https://pan ...
- Java项目案例之--封装的实例
Java项目案例之---封装的实例 有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:J001,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值 有一个学生 ...
- C# 使用XDocument实现读取、添加,修改XML文件
新建xml文件编写如下内容做测试使用 需要引用:System.Xml.Linq 命名空间 一.读取XML 读取所有文档 筛选子元素为attribute1的元素,结果是IEumerable 通过Lin ...
- android_layout_linearlayout(一)
这几天一直在研究线性布局这块,记录下一些研究心得,作为参考之用. 一.金刚钻:(线性布局,英文名 linearLayout) 布局xml文件中统大者是一个线性布局,它的长宽都已经fill_parent ...
- 【字符串】P2084 进制转换-C++
题目描述 今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 : 1*2^4+0*2^3+1*2^2+0*2^1+1*2^0, 那么请你编程实现,将一个M进制的数N转换成十进 ...
- Shrio多Realm认证及认证策略
在大型的系统中,安全数据可能会存放在多个数据库中,而且每个数据的加密方式也是不一样的,那么单一的Realm就无法完成. 这时,就需要用到多Realm认证了,多Realm又涉及到认证策略,及在多个Rea ...
- RecycleView文字吸顶,点击吸顶布局刷新数据
实现效果 需求 Recycle有一个头布局,可以跟随列表进行滑动 点击头布局之后可以重新加载列表数据 随着头布局的消失,留下一个可点击的布局(该布局在头布局中) 效果类似下图: 淘宝的商品列表,随着我 ...