日期:2018.10.07

星期五

博客期:014

一、Java中的位运算

代码如下:

 package Morts107;

 public class Test107 {
public static void main(String[] args) {
int z;
z = 13>>1;//00001101(13)----------------[右移1位]-------------->00000110(6)
System.out.println(" z = "+z);
z = 45>>2;//00101101(45)----------------[右移2位]-------------->00001011(11)
System.out.println(" z = "+z);
z = 6<<1;//00000110(6)------------------[左移1位]-------------->00001100(12)
System.out.println(" z = "+z);
z = 11<<2;//00001011(11)----------------[右移2位]-------------->00101100(44)
System.out.println(" z = "+z);
z = -1>>2;//10...0000001(-1)----------------[左移1位]-------------->10...010(-2)
System.out.println(" z = "+z);
}
}

本程序实现了int类型数值的位运算,如代码中的注释一样,计算机只能储存1和0,所以说这些数都是二进制的!而二进制的13就是(…001101),让它向右位移1位,自然就成了6(…00110),即13>>1==6成立,所以位运算就是这样!<<和>>分别表示左移和右移,而右边的操作数就是位置移动的数的大小!如11(…01011)左移2位,就是44(…0101100),即11<<2==44成立;这就相当于<<是这个数除以(2的后操作数次方)的结果,而>>就相当于是乘以(2的后操作数次方)的结果!而对于负数来说,它的第一位是1,所以负数最大也就是-1,-1/2也相当于-1!

正整数的原码、反码和补码都一样;

负数部分:

原码和反码的相互转换:符号位不变,数值位按位取反

原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1

二、数据类型所占的位数

Byte      1 字节   (8bit)

Char     2 字节   (16bit)

Short      2 字节   (16bit)

Int          4字节    (32bit)

Float      4字节    (32bit)

Long      8字节    (64bit)

Double   8字节    (64bit)

说明了一个问题:取值范围小的可以往取值范围大的类型转(浮点类型所表示范围较大),在非浮点类型转换到浮点类型时一定会失去一部分精度!

三、测试题目

结果如下:

结论:枚举类型与String类不同,可以直接用==、!=来判断关系!

掌握了!

四、运行代码

结果如下:

不意外,因为float和double都是浮点类型,是不精确的!

五、实验

#:以下代码的输出结果是什么?

int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

@:

#:为什么会有这样的输出结果?

String类的+是相当于StringBuffer类中的append()函数,就是因为这个原因,System.out.println(”I love”+” China!”);实际上和System.out.println(“I love China!”);是一个效果,而在X和Y(两个整形int的数据)相加时,自然是调用它们自己的加法函数了!)

Java的小实验——各种测试以及说明的更多相关文章

  1. 关于java中equals与==的区别的小实验

    java中equals与==经常容易混淆,简单一点说就是equals比较的是值是否相等,是一种方法,==比较的两个对象在JVM中的地址,是一种操作符. 做了几个小实验比较结果. 实验一: String ...

  2. 20145211 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)

    实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和IDEA ...

  3. 20145227 《Java程序设计》实验四实验报告

    20145227 <Java程序设计>实验四实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello World的小程序 实验步骤 ...

  4. 20145120 《Java程序设计》实验三实验报告

    20145120 <Java程序设计>实验三实验报告 实验名称:敏捷开发与XP实践 实验目的与要求: XP基础 XP核心实践 相关工具 (一)敏捷开发与XP 极限编程(eXtreme Pr ...

  5. 实验二 Java面向对象程序设计实验报告

    实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验 ...

  6. 20175325 《JAVA程序设计》实验一 《JAVA开发环境的熟悉》实验报告

    20175325 <JAVA程序设计>实验一 <JAVA开发环境的熟悉>实验报告 一.实验内容及步骤 (一).实验一: 实验要求: 0 参考实验要求 1 建立"自己学 ...

  7. 20165234 《Java程序设计》实验一 Java开发环境的熟悉

    一.实验报告封面 课程:Java程序设计  班级:1652班  姓名:刘津甫  学号:20165234 指导教师:娄嘉鹏  实验日期:2018年4月2日 实验时间:15:35 - 17:15  实验序 ...

  8. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

  9. 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...

随机推荐

  1. ue4 蓝图方法备份

    normalized 标准化 向量标准化 +- 1,1,1 内的值 角度标准化 +-180内的值 delta A-B (输出时roll在后面)  角度相减 interp 插值运算 (做平滑移动常用)  ...

  2. 谈谈 git 撤销操作

    在工作中,往往会因为一些误操作,想撤销代码,下面我简单介绍一下如何操作(如果不了解 git 的基础用法,可以点击这里:链接) 撤销本地修改 git checkout 文件 撤销所有文件 git che ...

  3. Vue.js 技术揭秘(学习) slot

    slot特性分发父组件的内容 作用域插槽:通过子组件的一些数据来决定父组件实现插槽

  4. day 9 - 1 函数

    函数 函数:定义了之后,可以在任何需要它的地方调用 函数模拟 len() 方法 #len() 方法的使用 s="世界上唯一不变的就是变化" print(len(s)) #下面是我们 ...

  5. PTA 逆散列问题 (30 分)(贪心)

    题目链接:https://pintia.cn/problem-sets/1107178288721649664/problems/1107178432099737614 题目大意: 给定长度为 N 的 ...

  6. java.lang.RuntimeException: Cannot create a secure XMLInputFactory 异常处理

    背景:本人在近日的webservice   CXF接口的编写调试过程中,发现一个很奇怪的现象--我在本地对接口进行往返请求时完全没有问题,不管是main方法直接调用还是业务场景里调用都无问题,在其他同 ...

  7. ListBox滚动条 刷新列表之后 指定位置(置顶或滚动到最后)

    参数ObservableCollection<T>类型 滚动条在最上 ListBox.ScrollIntoView(ListBoxOC[0]);滚动条在最下 ListBox.ScrollI ...

  8. 2017-2018-2 20165325 实验二《Java面向对象程序设计》实验报告

    一.面向对象程序设计-1 1.检查点要求 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 参考 http://www.cnblo ...

  9. python 之路,Day 1 python基础 之 课后随笔

    首先是抱着被忽悠的心态,购买了老男孩的什么什么什么(你懂得!!),开始了一周一堂课时的听,然后就是做,自己的博客,首先附上整理的内容吧. 1day .... 一. Hell world 程序 在lin ...

  10. 析构函数中的virtual是否必要?

    我们经常听到建议要把构造函数不能为虚,析构函数最好为虚,这是为什么? 如下例子: // pvtable1.cpp : 定义控制台应用程序的入口点. #include "stdafx.h&qu ...