当前位置: 代码迷 >> J2SE >> 一简单有关问题
  详细解决方案

一简单有关问题

热度:85   发布时间:2016-04-24 12:19:55.0
一简单问题
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("格式有误,请重新输入");        }    }}
------解决方案--------------------
探讨

1、java中试用位运算符实现2^6
楼主是想表达什么意思?要是求幂的话,2楼正解;要是求按位异或的话,4楼正解

2、学生从键盘输入一个100之内的考试分数,这个用输入函数怎么实现的?
主要是要判断分数的格式和范围要正确
Java code

public class TestPrint
{
public static void main(String[] args)
……
  相关解决方案