//程序告诉我们可以存储在(无符号整数)给定位的最大值。(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我希望上面的代码能够编译而不会出错 提前谢谢你
答案 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。