java中的运算,+-* /% | ^ &
java中运算都是操作符号,那么整形默认为int,双精度默认为都double
整数
看案例:

无法编译通过:操作默认为int,接受结果为int,所以这个地方编译无法通过,所以需要强制类型转换

再看案例:


再看双精度:

这种是可以的,再看

这也是可以的,看结果:

精度损失。再看

结果:

再看多种案例:

看结果:

再看案例 :

看结果

那么会什么会出现这么多问题呢,原因
在数据结果,转为二进制的时候,比如0.3 转换为二进制如这么转换的
0.3*2->0.6->0.6*2>1.2 二进制为1
将小数点后面的0.2继续进行
0.2*2》0.4>0.8>1.6>二进制为1
再进行
0.6*2》1.2 二进制1 再进行
0.2 *2》0.4》0.8》1.6 如此循环下去,导致最后会进行精度损失,
所以如果项目中要有这样的,所以需要进行采用dicmal类型来操作精度。避免精度损失
| ^ & 运算解析:
看案例:

看结果:

这是为什么呢。
分析
第一个为或运算,第二个为与运算,第三个为亦或预算
3转化为二进制的 0000 0011
1转为二进制 0000 0001
或,只要其中一个为正确那么就正确,在进行运算的时候,只要其中一个为1,那么就为1
所以 1|3 结果为0000 0011 即结果为3
与 只要两个都正确,那么正确,在运算中只要两个相同就为1,另外为0
1&3 结果为0000 0001 所以结果为1
亦或 只要两个不同才正确,所以计算时候,只有两个不同才为1,另外为0
1^3 结果0000 0010 所以结果为2
位运算
看案例:

一个是左移,一个是右移
1 二进制 0000 0001 向右移 3位 所以 0000 0000 所以结果为0
左移 0000 1000 所以为 8
再看案例:

9的二进制为 0000 1001
左移移动 0100 1000 结果为2e6+2e3=64+8=72 计算规则是这样的,首先最后一个为2的0次方,那么第七位就为2的6次方,第四位就为2的3方法
右移 0000 0001 所以结果为1
随机推荐
- SpringBoot与MybatisPlus整合之活动记录(十五)
活动记录和正常的CRUD效果是一样的,此处只当一个拓展,了解即可 pom.xml <dependencies> <dependency> <groupId>org. ...
- R.Swift优雅加载资源文件
在新的项目中,接触到了一个很不错的框架R.swift,可以帮助更方便安全的使用资源文件,相信已经使用过的或者还没有接触过的,一旦使用过了解过它,会爱上这个框架工具! 一.R.swift特点 当项目bu ...
- 深入理解.NET Core的基元(二) - 共享框架
原文:Deep-dive into .NET Core primitives, part 2: the shared framework 作者:Nate McMaster 译文:深入理解.NET Co ...
- 微服务架构案例(05):SpringCloud 基础组件应用设计
本文源码:GitHub·点这里 || GitEE·点这里 更新进度(共6节): 01:项目技术选型简介,架构图解说明 02:业务架构设计,系统分层管理 03:数据库选型,业务数据设计规划 04:中间件 ...
- Ubuntu18.04系统下安装Pycharm&vim设置自动缩进及默认显示行号
Ubuntu18.04系统自带python3.6及python2.7,Pycharm是一款非常强大的IDE.目前Pycharm有两个版本:专业版和Community社区,区别是专业版是收费,而且功能更 ...
- CSPS模拟 95
T_T flag彻底倒了 虽然打一开始就没觉得能实现过 可是我好桑心T_T skyh那个没素质的还一直bb T_T
- Android DisplayMetrics 获取和屏幕相关的信息
Android源码中是这样来描述DisplayMetrics的. /** * A structure describing general information about a display, s ...
- Kubernetes3-kubectl管理Kubernetes容器平台-1
一.简介 1.什么是kubectl kubectl前面其实已经用到了一些,它其实就是用于操作kubernetes集群的命令行接口,通过kubectl的各种命令实现各种功能 2.环境还是用上一偏文章 K ...
- python 爬取豆瓣书籍信息
继爬取 猫眼电影TOP100榜单 之后,再来爬一下豆瓣的书籍信息(主要是书的信息,评分及占比,评论并未爬取).原创,转载请联系我. 需求:爬取豆瓣某类型标签下的所有书籍的详细信息及评分 语言:pyth ...
- Java 8 Streams API 详解
流式编程作为Java 8的亮点之一,是继Java 5之后对集合的再一次升级,可以说Java 8几大特性中,Streams API 是作为Java 函数式的主角来设计的,夸张的说,有了Streams A ...