首先要明白这道题目的考查点是什么,

一是大家首先要对计算机原理的底层细节要清楚、要知道加减法的位运算原理和知道计算机中的算术运算会发生越界的情况,

二是要具备一定的面向对象的设计思想。首先,计算机中用固定数量的几个字节来存储的数值,所以计算机中能够表示的数值是有一定的范围的,为了便于讲解和理解,我们先以byte 类型的整数为例,它用1个字节进行存储,表示的最大数值范围为-128到+127。-1在内存中对应的二进制数据为11111111,如果两个-1相加,不考虑Java运算时的类型提升,运算后会产生进位,二进制结果为1,11111110,由于进位后超过了byte 类型的存储空间,所以进位部分被舍弃,即最终的结果为11111110,也就是-2,这正好利用溢位的方式实现了负数的运算。-128 在内存中对应的二进制数据为10000000,如果两个-128相加,不考虑Java运算时的类型提升,运算后会产生进位,二进制结果为1,00000000,由于进位后超过了byte类型的存储空间,所以进位部分被舍弃,即最终的结果为00000000,也就是0,这样的结果显然不是我们期望的,这说明计算机中的算术运算是会发生越界情况的,两个数值的运算结果不能超过计算机中的该类型的数值范围。由于Java中涉及表达式运算时的类型自动提升,我们无法用byte类型来做演示这种问题和现象的实验,

大家可以用下面一个使用整数做实验的例子程序体验一下:int a = Integer.MAX_VALUE;int b = Integer.MAX_VALUE;int sum = a + b;System.out.println(“a=”+a+”,b=”+b+”,sum=”+sum);先不考虑long类型,由于int的正数范围为2的31次方,表示的最大数值约等于2*1000*1000*1000,也就是20亿的大小,

所以,要实现一个一百亿的计算器,我们得自己设计一个类可以用于表示很大的整数,并且提供了与另外一个整数进行加减乘除的功能,大概功能如下:()这个类内部有两个成员变量,一个表示符号,另一个用字节数组表示数值的二进制数()有一个构造方法,把一个包含有多位数值的字符串转换到内部的符号和字节数组中()提供加减乘除的功能

public class BigInteger //表示很大的整数

{

int sign;   //标识符号

byte[] val; //用字节数组表示数值的二进制数

//构造方法,把一个包含有多位数值的字符串转换到内部的符号和字节数组中

public Biginteger(String val)

{

sign = ;

val = ;

}

//+-*%方法

public BigInteger add(BigInteger other){}

public BigInteger subtract(BigInteger other){}

public BigInteger multiply(BigInteger other){}

public BigInteger divide(BigInteger other){}

}

备注:要想写出这个类的完整代码,是非常复杂的,如果有兴趣的话,可以参看jdk 中自带的

java.math.BigInteger 类的源码。面试的人也知道谁都不可能在短时间内写出这个类的完整代码的,他要的

是你是否有这方面的概念和意识,他最重要的还是考查你的能力,所以,你不要因为自己无法写出完整的

最终结果就放弃答这道题,你要做的就是你比别人写得多,证明你比别人强,你有这方面的思想意识就可

以了,毕竟别人可能连题目的意思都看不懂,什么都没写,你要敢于答这道题,即使只答了一部分,那也

与那些什么都不懂的人区别出来,拉开了距离,算是矮子中的高个,机会当然就属于你了。另外,答案中

的框架代码也很重要,体现了一些面向对象设计的功底,特别是其中的方法命名很专业,用的英文单词很

精准,这也是能力、经验、专业性、英语水平等多个方面的体现,会给人留下很好的印象。

java设计一百亿的计算器_请设计一个一百亿的计算器相关推荐

  1. c语言 运算符op,1 简单计算器。请编写一个程序计算表达式:datal op data2的值。其中op为运算符+、—、*、/。...

    满意答案 770vivozf 2013.03.02 采纳率:43%    等级:9 已帮助:769人 1.简单计算器.请编写一个程序计算表达式:datal op data2的值.其中op为运算符+.- ...

  2. 做一个计算器_如何设计一个JavaScript插件系统,编程思维比死磕API更重要

    WordPress有插件. jQuery有插件.Gatsby.Eleventy和Vue也是如此. 插件是库和框架的常见功能,并且有一个很好的理由:它们允许开发人员以安全,可扩展的方式添加功能.这使核心 ...

  3. java属于什么意向应聘岗位_请针对你意向的岗位简单介绍自己。

    [简答题]请同学们把课本96页第5小题,97页第2. 3小题完成后发给我. [简答题]请简要介绍你对德意志与德语的了解 [填空题]请写出空操作指令. [填空题]请写出主控指令. [填空题]请写出置位指 ...

  4. centos 计算器_在Linux命令行中使用计算器的5个命令详解

    大家好,我是良许. 在使用 Linux 时,我们有时会需要做一些计算,那么我们就可能需要用到计算器.在 Linux 命令行里,有许多计算器工具,这些命令行计算器可以让我们执行科学计算.财务计算或者一些 ...

  5. 写一个方法判断一个整数是否为质数_请写一个函数来检查用户提交的数据是否为整数...

    请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制.八进制.十进制.十六进制数字) 1.is_integer 是 is_int() 的别名,是一样的 2.is_int/is_in ...

  6. sql integer字置为空_请写一个函数来检查用户提交的数据是否为整数

    请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制.八进制.十进制.十六进制数字) 1.is_integer 是 is_int() 的别名,是一样的 2.is_int/is_in ...

  7. 时间加减计算器_财政局刚刚回应丨禁止携带计算器,否则成绩无效!

    我是岛叔,你好. 在大多数的会计相关考试当中,初级.中级.高级.CPA.税务师等等会计考试,计算基本上是必不可少的考试考查内容,所以就出现了这样一个问题:考试能否携带计算器,哪些考试是可以携带计算器, ...

  8. python输入学号姓名输出自我介绍_请编写一个程序,使用字典存储学生信息,学生信息包括学号和姓名,请根据学生学号从小到大输出学生信息。_学小易找答案...

    [单选题]维持人体直立姿势的重要肌 [选择题]2. 对尿失禁患者的护理中错误的一项是( ) [简答题]你印象最深的一处旅游景点是哪里?给你印象深刻的地方在于?有我们的民俗文化元素吗? [判断题]中间继 ...

  9. java中接口降低耦合性_如何降低一个程序的耦合性

    耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间接口的复杂程度.调用模块的方式以及哪些信息通过接口. 一般模块之间可能的连接方式有七种,构成耦合性的七种类型.它们之间的关系为(由弱到 ...

最新文章

  1. 使用VB.NET加快代码开发速度
  2. matlab imadjust 用 opencv改写
  3. ibm服务器imm管理方式简介
  4. fibonacci的几种实现及尾递归
  5. python open ascii codec cant_解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误...
  6. 分布式下服务注册的地位和原理
  7. lucene api
  8. [转载] python sorted 使用cmp函数时候注意cmp需要传入两个参数,传入两个参数机制的分析
  9. python普通滑块验证码破解初级版
  10. 九联UNT401H零配置、芒果、南传、百视通等版本通刷固件及教程
  11. 面试高频智力题 100层楼两个鸡蛋找出临界点的最多次数 (直接分析法,非动态规划思路)
  12. 【无限互联】学员作品 豆果美食IOS客户端
  13. 云计算采用的各种虚拟化技术比较
  14. 电子工程师除了挣工资,还可以这样增加收入!
  15. linux pppd源码下载_Linux中的pppd
  16. Win软件 - 教你正确使用 Win10 专业版系统自带远程桌面(免费内网穿透)
  17. [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)
  18. linux 怎么看节点核数,Linux怎么查看CPU核数?-linux运维
  19. RK3128适配RTL8723DU
  20. 时间序列建立图模型(四)

热门文章

  1. 初学者web前端知识点--HTML部分
  2. Ehcache分布式缓存及测试方法
  3. Tarjan算法求解桥和边双连通分量(附POJ 3352 Road Construction解题报告)
  4. 小白学数据分析-----ARPDAU的价值
  5. LINUX 错误代码
  6. nginx常见错误之(CreateFile() “D:\LCJ\下载\nginx/conf/nginx.conf“ failed (3: The system cannot find the path
  7. LeetCode--96. 不同的二叉搜索树(动态规划)
  8. 入门机器学习(一)--单变量线性回归
  9. 多线程编程之三——线程间通讯
  10. 求连通域面积matlab