首页 > 代码库 > (byte)300实际值为44

(byte)300实际值为44

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 = http://www.mamicode.com/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);
   }
}