一简单问题
java中试用位运算符实现2^6;
------解决方案--------------------2<<5
------解决方案--------------------1<<6
------解决方案--------------------2^6中的^是按位异或符,它的结果是:4
计算方式是,首先计算出2和6的补码,分别为:
2的补码:0010
6的补码:0110
按位异或的计算规则是,两个数的码进行比较,有1个为0,1个为1,结果为1,否则为0,即运算后的补码为:0100,因为符号位是正数,即原码(二进制)=反码=补码,原码即是10进制的二进制数,所以将二进制(0100)转换成10进制就得出了结果4.
用移位运算符算出2^6的相同结果的话,比较简单的就是2<<1,也就是将2和1转换成补码,再进行移位运算,得出的结果也是4。
详细的二进制和其它进制的关系和运算,楼主可以参考一下这个文档:http://wenku.baidu.com/view/4e1f031810a6f524ccbf85f0.html
------解决方案--------------------1、java中试用位运算符实现2^6
楼主是想表达什么意思?要是求幂的话,2楼正解;要是求按位异或的话,4楼正解
2、学生从键盘输入一个100之内的考试分数,这个用输入函数怎么实现的?
主要是要判断分数的格式和范围要正确
Java code
public class TestPrint
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("请输入考试分数:");
String s = input.next();
try
{
float score = Float.parseFloat(s);
if (score < 0 || score > 100)
{
System.out.print("范围有误,请重新输入:");
}
else
{
System.out.println("你输入的分数是:" + score);
}
} catch (NumberFormatException e)
{
System.out.println("格式有误,请重新输入");
}
}
}
------解决方案--------------------