天天看點

java 十進制轉二進制代碼_十進制轉二進制代碼

睡不着  看了一下以前的部落格 發現算法bug修複一下   2017年10月4日 01:38:44

網上看到一個代碼 很有意思大家可以看看

public static voidmain(String[] args) {int n = -10;

String result= "";boolean minus = false;//如果該數字為負數,那麼進行該負數+1之後的絕對值的二進制碼的對應位取反,然後将它儲存在result結果中

if(n < 0){

minus= true;

n= Math.abs(n + 1);

}while(true){int remainder = (!minus && n % 2 == 0) || (minus && n % 2 == 1) ? 0 : 1;//将餘數儲存在結果中

result = remainder +result;

n/= 2;if(n == 0){break;

}

}//判斷是否為負數,如果是負數,那麼前面所有位補1

if(minus){

n=result.length();for(int i = 1; i <= 32 - n; i++){

result= 1 +result;

}

}

System.out.println(result);

}

--------------------------------------------------------------------------------------------------------------------

今天溫習了學過的知識,将十進制轉二進制的代碼做出來了,如有不對請各位大神指出

System.out.print("請輸入一個十進制數字:");

Scanner sc=new Scanner(System.in);

int a=sc.nextInt();

int l=0;//l為除了幾次

int b[]=new int[32];

while(a>0)

{

a/=2;

b[31-l]=a%2;

l++;

}

System.out.println("轉化的二進制數字為:");

for (int i = 0; i < b.length; i++)

{

System.out.print(b[i]);

if ((i+1)%8==0)

{

System.out.print(" ");

}

}