1.java 枚举类型和数据二进制等问题思考

以下代码的输出结果是什么?为什么会有这样的输出结果?

int X=100;

int Y=200;

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

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

   答:输出的结果为X+Y=100 200 300=X+Y;第一个+X+Y的意思就是在“X+Y=”字符串后面加上“X”、"Y"两个变量,而第二个中X+Y则是变量X和Y进行相加运算

2.仔细阅读示例: EnumTest.java,运行它,分析运行结果?你能得到什么结论?你掌握了枚举类型的基本用法了吗?

  答:结论是枚举类型是引用类型!枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。

可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

3.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。

  答:1.原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 2.反码的表示方法是:正数的反码是其本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.3.补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。Java中使用的是补码。

概念:原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小;反码是数值存储的一种,但是由于补码更能有效表现数字在计算机中的形式,所以多数计算机一般都不采用反码表示数。;在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

4.为什么double类型的数值进行运算得不到“数学上精确”的结果?请通过互联网查找资料,或者是阅读相关计算机教材,解决这个问题。(提示:这个问题,与浮点数在计算机内部的表示方法有关系)

  答:这个涉及到二进制与十进制的转换问题。double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。

最新文章

  1. linux下的nodejs安装
  2. Android开发自学笔记—1.1(番外)AndroidStudio常用功能介绍
  3. C++读取txt文件
  4. hdu1281 二分匹配
  5. div+css文字垂直居中 解决左侧头像右侧姓名,姓名多换行后相对于头像仍居中显示
  6. awesome-nlp
  7. 批量更新memcached缓存
  8. easyui源码翻译1.32--Droppable(放置)
  9. A Swift Tour(4) - Objects and Classes
  10. 【转】iOS开发24:使用SQLite3存储和读取数据
  11. akoj-1048-求某一整数序列的全排列问题
  12. WPF_DatePiker控件的禁止输入
  13. Discuz教程:X3.1-x3.2后台admin.php防止直接恶意访问
  14. 【RN6752】模拟高清AHD芯片或成为车机新标配
  15. 福州大学软件工程1916|W班 第6次作业成绩排名
  16. Vue(十四)过渡(动画)
  17. Visual Studio 2015 激活码
  18. 正则检查是否为IP地址
  19. odoo开发笔记--模型中常用的方法
  20. 修改Sql Server 数据库文件默认存放目录

热门文章

  1. Vim相关问题
  2. python 发布
  3. MySQL三种存储引擎总结
  4. Django之model基础(查询补充)
  5. pure响应式布局
  6. GitLab-CE-8.9.4 (OpenLogic CentOS 7.2)
  7. jquery mmgrid使用
  8. C++指针的概念解读
  9. 复习C++_基础、函数、数组、字符串
  10. 解决Win10桌面右键卡顿一直转圈圈的