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); } }