从给定位找到最大值

时间:2014-10-25 05:51:27

标签: java binary

//程序告诉我们可以存储在(无符号整数)给定位的最大值。(8位为256)

    int counter=0;
    int last= 0b11111111;
    for(int first=0b00000000;first<=last;counter++)
    {
    first=first + 1;//adding 1(binary addition)

    }

    System.out.println("for "+ variable  "bits u can store "+counter values");

//变量在这里8。 //(。如何从用户获取它?2.如何将其转换为二进制0b00000000?)

//如何在没有0b的情况下执行此操作,实际上在以前的java版本中 //一个程序,如果你给8位(如果是无符号)那么它给你可以存储的最大值,而不是使用((2 * n)-1)。

//代码不仅适用于java 8 //抱歉,我没有java 8我希望上面的代码能够编译而不会出错 提前谢谢你

3 个答案:

答案 0 :(得分:1)

试试这个:

long result = 1 << numBits;

如果numBits大于long的大小,请改用double(并将“1”和“numBits”转换为double)。

答案 1 :(得分:1)

这个怎么样

int last = 0;
for(int i = 0; i < bitNum; i++){
    last = (last << 1) + 1
}

答案 2 :(得分:0)

Scanner s = new Scanner(System.in);
int variable = s.nextInt();
int counter = 0;
long last = (1 << variable) - 1;// = 0b'111....111
for(int first = 0; i <= last; counter++){
    first = first + 1;
}
System.out.println("for "+ variable +"bits u can store " + counter + "values");

此代码与您的代码相同,但此代码不使用0b。