java核心卷一 中文 42頁 說: (byte)300實際值為44
下面看看怎麼轉換:
System.out.println((byte)300);
System.out.println(Integer.toBinaryString(300));//輸出100101100
//第二步
BigInteger i=new BigInteger("00101100",2);//byte只有8位 截取低8位
System.out.println(i.intValue());//輸出44
第二步用到
BigInteger
可以在各種進制間方便轉換嗎?原來寫那麼多方法都是白費。只是輸入應該是一個字符串。
先想如果java支持0b110101010來表示二進制的話 就直接
System.out.print(0b110101010)
就好,可是不支持 說是因為太長。
百度 java二進制轉十進制 找到:
點擊打開鏈接
摘抄備份:
java 二進制轉為十進制,十進制轉為二進制
2013-02-07 19:48:23| 分類:
Java俱樂部 |舉報
|字號 訂閱
import java.math.BigInteger;
public class Hello{
public static void main(String args[]){
//10進制->2進制
String a = "121";//輸入數值
BigInteger src = new BigInteger(a);//轉換為BigInteger類型
System.out.println(src.toString(2));//轉換為2進制並輸出
//2進制->10進制
String b = "1111001";//輸入數值
BigInteger src1= new BigInteger(b,2);//轉換為BigInteger類型
System.out.println(src1.toString());//轉換為10進制並輸出結果
/*
由此可見,有2點要注意:
1. BigInteger的構造函數
BigInteger(String src)默認參數字符串為10進制數值
BigInteger(String src, int x)第2個參數x是指定第一個參數src的進制類型
2. toString方法
toString()默認把數值按10進制數值轉化為字符串。
toString(int x)把數值按參數x的進制轉化為字符串*/
}
}
另:
將十進制轉換成二進制的算法如下:
1.給定一個數;
2.根據十進制轉換二進制的思想:把這個數除以2若為單數則為1,為偶數則為0,直到最後一個數為1為止。所以我們要做的就是用你給定的這個數除以2,如果結果為奇數則r=1,否則r=0;如此循環下去,直到這個數〉=1。
3.然後把r的值送到一個數組裡面。最後把這個數組裡面的內容從後面打印出來就可以了。
import java.util.Scanner;
public class Hi {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個十進制需要轉換為二進制的正整數");
int n=sc.nextInt();
int r;
int i=0;
int[] a=new int[20];
do{
if(n%2==1)
r=1;
else
r=0;
a[i]=r;
n/=2;
i++;
}while(n>0);
System.out.println("十進制轉換為二進制後:");
for(int j=i-1;j>=0;j--){
System.out.print(a[j]);
}
}
}
另:
二進制轉換成十進制
import java.util.*;
public class Hello{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("請輸入一個二進制數");
int s = sc.nextInt();
int sum = 0;
int i = 0;
while(s != 0){
sum = (int) (sum + s % 10 * (Math.pow(2,i)));
s = s / 10;
i ++;
}
System.out.println("轉換為十進制後為:" + sum);
}
}