日期: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. PHP之字符串匹配

    strstr(string,search): strstr() 函数搜索一个字符串在另一个字符串中的第一次出现. 该函数返回字符串的其余部分(从匹配点).如果未找到所搜索的字符串,则返回 false. ...

  2. 洛谷P2699小浩的幂次运算

    二分走一波,没想到题解的大佬做法 p_q 注意爆long long,所以先对数取一下上限 二分确定下限,然后输出 #include<stdio.h> #include<math.h& ...

  3. 【blog】好用的markdown插件 - Mditor

    效果 官网地址 GitHub: https://github.com/houfeng/mditor 主页: http://houfeng.net/mditor/

  4. 20165221—JAVA第六周学习心得

    课本知识点小结 第8章:常用实用类 String类 常量对象放入常量池中,而用string声明的对象变量中存放着引用.凡是new构造的常量都不在常量池中. startIndex表示提取字符的起始位置, ...

  5. python 导入numpy 导致多进程绑定同一个CPU问题解决方法

    python 如果有导入numpy模块的import语句,会导致默认将多进程程序的每个进程都绑定到同一个CPU core上, 失去了多进程在多核CPU上的性能优越性,这和CPU affinity(CP ...

  6. [python] 基础工具介绍好文推荐

    Github上有个哥们写的,还不错,mark一下: https://github.com/lijin-THU/notes-python/blob/master/index.ipynb 相对全面的介绍了 ...

  7. Pytorch之验证码识别

    本文主要实现了两个工作:1.验证码生成   2.Pytorch识别验证码 一. 验证码生成 方法1. 利用PIL库的ImageDraw实现绘图,此法参考博客实现: #!/usr/bin/env pyt ...

  8. wxpy: 用 Python 玩微信【转】

    转自:https://wxpy.readthedocs.io/zh/latest/index.html 微信机器人 / 可能是最优雅的微信个人号 API wxpy 在 itchat 的基础上,通过大量 ...

  9. 在Linux下误删文件后恢复【转】

    针对日常维护操作,难免会出现文件误删除的操作.大家熟知linux文件系统不同win有回收站,删除后的文件可以到垃圾箱寻回,要知道linux文件修复比较费劲,网络上面的文档也是五花八门.所以本次研究一种 ...

  10. MySQL登录报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    [root@pisphkdcbsql01 mysql3307]# /opt/mysql3307/bin/mysql -upisp -ppisp@ mysql: [Warning] Using a pa ...