java int不会考虑前0

java int不会考虑前0,java,int,zero,Java,Int,Zero,我正试图用java编写一个二进制数类。。但如果我发送一个以0开头的整数,则该数字不会正确保存。我知道问题是什么,但我想不出解决办法。在C++中,我使用了浮点而不是int,但是在java中似乎不起作用。 import java.util.*; class BinaryNumber { private boolean b[]; public void setBit(int index,boolean value){ b[index]=value; } public boolean ge

我正试图用java编写一个二进制数类。。但如果我发送一个以0开头的整数,则该数字不会正确保存。我知道问题是什么,但我想不出解决办法。在C++中,我使用了浮点而不是int,但是在java中似乎不起作用。
import java.util.*;


class BinaryNumber {

private boolean b[];


public void setBit(int index,boolean value){
 b[index]=value;
}

public boolean getBit(int index){
 return b[index];
}

public void clear(){    
    for(int i=0;i<8;i++)
    b[i]=false;
}

public BinaryNumber() {
    b=new boolean[8];
    for(int i=0;i<8;i++){
    b[i]=false;
    }   
} 

public void inputNumber(int a){

 if(a>11111111) {    
    System.out.println(" Exception Number to Large Nothing Entered ");
 }   
 else {

     int number=a;
     int c=7;
     int digit=0;

     for(int i=0;i<8;i++) {
         digit=number%10;
             if(digit==1){ 
             b[c]=true;
             }
             else if (digit==0) { 
             b[c]=false; 
             }
             else { 
             System.out.println(" Only Binary Number Accepted "); 
             clear();
             i=8; //break
             }      
         number=number/10;
         c--;       
     }   
 }  
}

public void outputNumber(){     
    for(int i=0;i<8;i++){
        if(b[i]==true){
            System.out.print("1");
        }
        else{
            System.out.print("0");
        }
    }       
    System.out.println(""); 
}

 }


class Q5{
public static void main(String args[]){

BinaryNumber a=new BinaryNumber();  
a.inputNumber(00100110);    
a.outputNumber();

BinaryNumber b=new BinaryNumber();  
b.inputNumber(00100111);
    b.outputNumber();   

}
}
import java.util.*;
类二进制数{
私有布尔b[];
public void setBit(整型索引,布尔值){
b[指数]=数值;
}
公共布尔getBit(int索引){
返回b[索引];
}
公共无效清除(){

例如(int i=0;i以
0
开头的数字被Java解释为八进制。

0
开头的数字被Java解释为八进制。

数字本身和它在语言中的表示形式是有区别的。例如,“0xD”(基数16)、“13”(基数10)、“015”(基数8)和“b1101”(基数2)是指同一数字的四种不同表示形式


数字本身和它在语言中的表示形式之间存在差异。例如,“0xD”(基数16)、“13”(基数10)、“015”(基数8)和“b1101”(基数2)是指同一数字的四种不同表示形式


我知道这个问题,但我如何解决这个问题..我知道我可以使用字符数组来获取输入,但我不想这么做,你可以a)不使用前导零,b)使用,c)使用
Integer.parseInt(字符串)
,它将始终将其输入解释为十进制。小警告:只有在使用JDK7进行构建时,
0b0001
形式的二进制文本才会起作用。不,这适用于任何版本的Java;如果您想知道它是如何实现的,它几乎是可预测的字符串遍历和累积结果实现。@lfti他我知道这个问题,但如何解决这个问题我知道我可以使用字符数组来获取输入,但我不想这么做,你可以a)不使用前导零,b)使用,c)使用
Integer.parseInt(字符串)
,它将始终将其输入解释为十进制。小警告:只有在使用JDK7进行构建时,
0b0001
形式的二进制文本才会起作用。不,这适用于任何版本的Java;如果您想知道它是如何实现的,它几乎是可预测的字符串遍历和累积结果实现。@lfti他他刚刚回答了这个问题,不要重复你自己。