一、补码简介

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-补码简介&浮点型整数的更多相关文章

  1. Java连载73-String方法简介

    一.字符串常用的方法 package com.bjpowernode.java_learning; ​ public class D73_StringMethodBriefIntroduction { ...

  2. Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)

    Java Content Repository API 简介 1 如果曾经试过开发内容管理应用程序,那么您应当非常清楚在实现内容系统时所遇到的固有难题.这个领地有点支离破碎,许多供应商都有自己的私有仓 ...

  3. 【译】Java SE 14 Hotspot 虚拟机垃圾回收调优指南

    原文链接:HotSpot Virtual Machine Garbage Collection Tuning Guide,基于Java SE 14. 本文主要包括以下内容: 优化目标与策略(Ergon ...

  4. Jconsole: JAVA 监视和管理控制台简介

    Jconsole: JAVA 监视和管理控制台简介 JDK中除了提供大量的命令行之外,还提供两个功能强大的可视化工具:JConsole和VisualVM. 之前对java的调试一直停留在 右键-> ...

  5. Lucene:基于Java的全文检索引擎简介

    Lucene:基于Java的全文检索引擎简介 Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全文索引应用,而是是一个用J ...

  6. Java将ip字符串转换成整数的代码

    下面代码是关于Java将ip字符串转换成整数的代码,希望对各位有较大用途. public class IpUtil { public static int Ip2Int(String strIp){ ...

  7. java assert的用法简介【转】

    assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库 ...

  8. Java的MVC模式简介

    Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件 ...

  9. Java JVM监控工具JConsole简介

    Java JVM监控工具JConsole简介 jconsole命令 功能:打开java监视管理控制台 方法: jconsole [选项1] [选项2] …… [选项n] 常用选项: -help     ...

随机推荐

  1. python - 博客目录

    博客目录 python基础部分 函数 初识函数 函数进阶 装饰器函数 迭代器和生成器 内置函数和匿名函数 递归函数 常用模块 常用模块 模块和包 面向对象 初识面向对象 面向对象进阶 网络编程 网络编 ...

  2. POJ 1743:Musical Theme(后缀数组+二分)

    题目链接 题意 有N个音符的序列来表示一首乐曲,每个音符都是1到88范围内的整数,现在要找一个重复的主题."主题"是整个音符序列的一个子串,它需要满足如下条件: 长度至少为5个音符 ...

  3. 解决 Prometheus 不能获取 Kubernetes 集群上 Windows 节点的 Metrics

    背景 接上一篇 快速搭建 Windows Kubernetes , 我们发现原来在 Windows Kubernetes 会有一些与在 Linux 上使用不一样的体验,俗称坑,例如 hostAlias ...

  4. 不使用 ASR 将虚机还原到另一个数据中心

    背景 在 Azure 上可能会遇到一个场景是将一台虚机搬到另一台数据中心,在不借助 ASR 的情况下我们该如何做? 因为 ASR 在云上更多的场景是用于灾备到异地.对于虚机的相关信息主要的是磁盘和网络 ...

  5. scrapy基础知识之 CrawlSpiders爬取lagou招聘保存在mysql(分布式):

    items.py import scrapy class LagouItem(scrapy.Item): # define the fields for your item here like: # ...

  6. Linux使用httpd配置反代理

    Linux安装httpd请看上一篇:https://www.cnblogs.com/tuituji27/p/11189095.html 首先,httpd默认监听端口号是80,增加或修改代理的端口号的文 ...

  7. Linux基础学习整理

    linux学习记录 下载地址 centos 下载地址: 网易镜像:http://mirrors.163.com/centos/6/isos/ 搜狐镜像:http://mirrors.sohu.com/ ...

  8. 利用gcc编译链接时出现 ‘undefined reference to `std::ios_base::Init::Init()’ 解决

    一般编译链接c++程序最好使用g++,若有如上的报错信息,需要在gcc后加上 -lstdc++ eg: gcc test.c -lstdc++ gcc和g++都是GNU的一个编译器. g++:后缀.c ...

  9. 微信小程序开发--页面之间的跳转

    一.navigator--完成页面之间的跳转 1.新建一个页面文件夹 2.在app.json文件中引入页面 "pages": [ "pages/index/index&q ...

  10. C 单链表 实现约瑟夫环

    list.h #ifndef _List_H #define _List_H typedef int ElementType; struct Node; typedef struct Node *Pt ...