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
随机推荐
- WordCount的实现和测试
WordCount 一.开头 (1)合作者:201631107110,201631083416 (2)代码地址:https://gitee.com/zhaoxiaoqin/WordCount.git ...
- Mac高效开发之iTerm2、Prezto和Solarized主题
本文首发于个人网站:Mac高效开发之iTerm2.Prezto和Solarized主题 工欲善其事必先利其器,作为开发,我追求极致的高效,因此会在很多细节上追求效率,例如:命令行窗口敲命令的时候,如果 ...
- django-MVT设计模式
MVT:Models.Views.Templates Model:封装数据库,对数据库进行访问,对数据进行增删查改等. View:业务逻辑的一些操作. Templates:展示. 而MVC主要的流程如 ...
- python新式类继承------C3算法
一.引入 mro即method resolution order,主要用于在多继承时判断调的属性的路径(来自于哪个类).之前查看了很多资料,说mro是基于深度优先搜索算法的.但不完全正确在Python ...
- Python监控SQL Server数据库服务器磁盘使用情况
本篇博客总结一下Python采集SQL Server数据库服务器的磁盘使用信息,其实这里也是根据需求不断推进演化的一个历程,我们监控服务器的磁盘走了大概这样一个历程: 1:使用SQL Server作业 ...
- MFC部分通用控件
1.StaticText鼠标单击事件 设置Notify属性,添加单击事件处理函数即可 2.Button 设置图标按钮 m_btn.SetIcon(LoadIcon(AfxGetResourceHa ...
- 爬虫之selenium爬取斗鱼主播图片
这是我GitHub上简单的selenium介绍与简单使用:https://github.com/bwyt/spider/tree/master/selenium%E5%9F%BA%E7%A1%80 & ...
- CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths——dsu on tree
题目描述 一棵根为1 的树,每条边上有一个字符(a-v共22种). 一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串. 求每个子树中最长的Dokhtar- ...
- Linux下安装nexus
下载地址:https://help.sonatype.com/repomanager3/download tar xf nexus-linux-3.19.1-01.tar.gz cd nexus-li ...
- MySQL57安装与设置
安装MySQL 添加mysql源 [root@localhost ~]# rpm -ivh http://repo.mysql.com//mysql57-community-release-el7-7 ...