求助,java表达式!!!!

问题描述

看java解惑pdf这本书遇到一个问题:当i是一个负奇数时,i%2等于-1而不是1,因此isOdd方法将错误地返回false。为了防止这种意外,请测试你的方法在为每一个数值型参数传递负数、零和正数数值时,其行为是否正确。这个问题很容易订正。只需将i%2与0而不是与1比较,并且反转比较的含义即可:publicstaticbooleanisOdd(inti){returni%2!=0;}如果你正在在一个性能临界(performance-critical)环境中使用isOdd方法,那么用位操作符AND(&)来替代取余操作符会显得更好:publicstaticbooleanisOdd(inti){return(i&1)!=0;}iTePub.Net-Collect总之,无论你何时使用到了取余操作符,都要考虑到操作数和结果的符号。该操作符的行为在其操作数非负时是一目了然的,但是当一个或两个操作数都是负数时,它的行为就不那么显而易见了。&符号可以替代%操作吗?

解决方案

解决方案二:
不能,这个是特殊情况,&是按位运算,按位是二进制的,所以正好可以代替%2因为是二进制的,所以如果是偶数,最后一位永远都是0,如果是奇数最后一位永远都是1

时间: 2024-11-01 09:20:27

求助,java表达式!!!!的相关文章

链表-求助Java算法,这两个算法问题有Java代码实现

问题描述 求助Java算法,这两个算法问题有Java代码实现 从N个元素集合里面随机抽取M个元素(M<N). C/C++: void randomChoose(int*data, intn, int *result, int m); Java: void randomChoose(int data[], int result[]); 说明: 1.Data是待抽取的元素集合,n是data的长度,result是抽取的结果,m是结果集的长度. 2.同一个元素不能被反复抽取. 3.每个元素被抽取到的概率

ndroid-新人求助 java.lang.NullPointerException

问题描述 新人求助 java.lang.NullPointerException 04-26 21:42:40.039: E/AndroidRuntime(1125): FATAL EXCEPTION: main 04-26 21:42:40.039: E/AndroidRuntime(1125): Process: com.example.remotecontrol, PID: 1125 04-26 21:42:40.039: E/AndroidRuntime(1125): java.lang

关于java问题-求助java编写电影院座位!!!!急用,大神帮帮忙!

问题描述 求助java编写电影院座位!!!!急用,大神帮帮忙! 格式是5行7列,每个座位格式是(1-1)这样.谢谢大家了.大神们在哪里? 解决方案 写个2重循环,一个控制行,一个控制列 解决方案二: 写个类-俩属性-行和列-ToString方法返回1-1这样格式的字符串-值来自两个属性-有属性的set和get方法-搞定

Java表达式类型自动提升

[一道经典的Java面试题] short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 答案是:前者错,后者对.相信不管是否经历过java面试过,大家一定对这道题很熟悉.因为这道题确实太经典了,以至于成为了基本每个老师都会拿出来,当作课堂例题来讲.要说清这道题,首先看看java表达式类型转换规则. [java表达式类型转换] java是一门强类型语言,不仅每个变量具有指定的数据类型,它的表达式也有指定的数据类型.因此在不同类型之间进行

求助java如果要调用摄像头用拍照要怎样去写

问题描述 求助java如果要调用摄像头用拍照要怎样去写 1C 具体内容是这样的,如果我要写一个三连拍保存照片的程序应该怎么写,可能的换能不能加上三张照片比对大小的功能,不行的话就不用了...因为不知道怎么去找出虚拟摄像头禁止掉才想用上面这个方法,我想确定拍照的摄像头是不是虚拟摄像头,然后去阻止这个虚拟摄像头拍照,但是不知道该怎么做...先谢各位了...

java-新手求助 JAVA面向对象的题目:

问题描述 新手求助 JAVA面向对象的题目: 共有两道题目:如题: 1:使用日期类Date 编写程序创建一个Date对象,设置它的流失时间分别为10000,100000,1000000 10000000.然后使用toString()方法分别显示上述日期: 2:编写一个程序,创建种子是1000的Random对象,然后使用nextInt(100)的方法显示0到 100之间的50个随机数. 刚学,连题目都看不懂.大家有时间的话.麻烦多指教一下.谢谢啦! 解决方案 新手java面向对象(一)新手java

java代码-求助java中窗体设置颜色的多种方法

问题描述 求助java中窗体设置颜色的多种方法 panel.setBackground(new Color(204,204,255));可以用数字来设置颜色?

急:求助java按序列编号排序(如1.2 ,1.11)

问题描述 求助java按序列编号排序如:现有一组序号为:1.11.111.22.12.55.51.11.1可能级别有更多如:1.4.1.1要求排序完的结果是1.1,1.2,1.11,1.11.1,2.1,2.5,5.5 解决方案 解决方案二:你的排序没看出有什么规则...解决方案三:importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List;public

java表达式问题-同样是a++同样是*3结果为什么不一样呢

问题描述 同样是a++同样是*3结果为什么不一样呢 int a=2 ;int b=a+3*a++ int a=2 ;int b=(a++)+3*a 第一个b=8第二个b=11 结果为什么不一样啊 解决方案 哎,怎么还这帖子呀,这实际单纯是编译器谁写的就是什么规则. 从java来说,一个表达式来了,边扫描边取数,符合规则就计算,不是说一看到表达式就去计算运算符的优先级高的部分,它也得从左往后解析过去. int b=a+3*a++ 就比如上面这句话,表达式是a+3*a++,从左往后扫描,扫描到a,取