java,二进制转换为十进制,valueof和parseInt的区别

import java.util.ArrayList;
import java.util.List;

public class Test {

	public static void main(String[] args) {
		// System.out.println(convertToBinary(1828759744));
		// //String[] A={"1","1"}; ///3   这是string数组
		String A = "11000000";
		// System.out.println(A.charAt(3)); ////4 返回A[2]
		// System.out.println(A.indexOf('5'));//3 A[3]=5,返回5的下标
		// System.out.println(A.indexOf(7)); ///// 无数字7 返回-1
		Test test = new Test();
		System.out.println(test.convertToDecimal(A));
		// System.out.println(Integer.valueOf("11000000",2));////192
		// System.out.print((int)Math.pow(2, 3));////8
	}

	private static String convertToBinary(int m) {
		List<Integer> list = new ArrayList<Integer>();
		StringBuffer sb = new StringBuffer();

		while (m / 2 != 0) {
			list.add(m % 2);
			m = m / 2;
		}
		list.add(m % 2);
		for (int i = list.size() - 1; i >= 0; i--) {
			sb.append(list.get(i));
		}

		return sb.toString();

	}// ////
	
//	 char charAt(int index) 
//     返回指定索引处的 char 值。 
	
//	static int parseInt(String s) 
//    将字符串参数作为有符号的十进制整数进行解析。 
	
//static int parseInt(String s, int radix) 
//    使用第二个参数指定的基数,将字符串参数解析为有符号的整数。 
	
//	static Integer valueOf(int i) 
//    返回一个表示指定的 int 值的 Integer 实例。 
	
//	static Integer valueOf(String s) 
//    返回保存指定的 String 的值的 Integer 对象。 
	
	private int convertToDecimal(String B) {
		double sum = 0;
		for (int i = 0; i < B.length(); i++) {
			 sum=sum+Integer.valueOf(B.charAt(i)+"")*Math.pow(2, B.length()-i-1);///valueOf(String s)   1  1  
			 System.out.println(Integer.valueOf(B.charAt(i)+""));////valueOf(String s) //  192 
			  
//			 sum=sum+Integer.valueOf(B.charAt(i))*Math.pow(2, B.length()-i-1); // valueOf(int i)  49  49  
//			 System.out.println(Integer.valueOf(B.charAt(i))); /// valueOf(int i)   //12432

//			  sum = sum + Integer.parseInt(B.charAt(i) + "")* Math.pow(2, B.length() - i - 1);///parseInt(String s)  1  1 
//			  System.out.println(Integer.parseInt(B.charAt(i) + ""));///  192
			 
			 // sum = sum + Integer.parseInt(B.charAt(i))* Math.pow(2, B.length() - i - 1);//Integer.parseInt(B.charAt(i))错误
		}

		return (int) sum;
	}
}
1
1
0
0
0
0
0
0
192
-----------------------------------------------------------------------------------

	private int convertToDecimal(String B) {
		double sum = 0;
		for (int i = 0; i < B.length(); i++) {
//			 sum=sum+Integer.valueOf(B.charAt(i)+"")*Math.pow(2, B.length()-i-1);///valueOf(String s)   1  1  
//			 System.out.println(Integer.valueOf(B.charAt(i)+""));////valueOf(String s) //  192 
			  
			 sum=sum+Integer.valueOf(B.charAt(i))*Math.pow(2, B.length()-i-1); // valueOf(int i)  49  49  
			 System.out.println(Integer.valueOf(B.charAt(i))); /// valueOf(int i)   //12432

//			  sum = sum + Integer.parseInt(B.charAt(i) + "")* Math.pow(2, B.length() - i - 1);///parseInt(String s)  1  1 
//			  System.out.println(Integer.parseInt(B.charAt(i) + ""));///  192
			 
			 // sum = sum + Integer.parseInt(B.charAt(i))* Math.pow(2, B.length() - i - 1);//Integer.parseInt(B.charAt(i))错误
		}

		return (int) sum;
	}
49
49
48
48
48
48
48
48
12432
------------------------------------------------------------------------------

private int convertToDecimal(String B) {
		double sum = 0;
		for (int i = 0; i < B.length(); i++) {
//			 sum=sum+Integer.valueOf(B.charAt(i)+"")*Math.pow(2, B.length()-i-1);///valueOf(String s)   1  1  
//			 System.out.println(Integer.valueOf(B.charAt(i)+""));////valueOf(String s) //  192 
			  
//			 sum=sum+Integer.valueOf(B.charAt(i))*Math.pow(2, B.length()-i-1); // valueOf(int i)  49  49  
//			 System.out.println(Integer.valueOf(B.charAt(i))); /// valueOf(int i)   //12432

			  sum = sum + Integer.parseInt(B.charAt(i) + "")* Math.pow(2, B.length() - i - 1);///parseInt(String s)  1  1 
			  System.out.println(Integer.parseInt(B.charAt(i) + ""));///  192
			 
			 // sum = sum + Integer.parseInt(B.charAt(i))* Math.pow(2, B.length() - i - 1);//Integer.parseInt(B.charAt(i))错误
		}

		return (int) sum;
	}
1
1
0
0
0
0
0
0
192

可见 valueOf(....+"")构成valueOf(string),返回字符串的该位字符

valueOf(int)返回该位字符的ASCII

parseInt(....+"")构成parseInt(String)以十进制返回该位字符

</pre><p style="color:rgb(54,46,43); font-family:Arial; font-size:13.63636302947998px; line-height:25.99431800842285px"><span style="color:rgb(0,0,0)"></span></p><pre code_snippet_id="1624414" snippet_file_name="blog_20160326_8_6994607" name="code" class="java">public class Test {
	public static void main(String[] args) {
		String str = "111";
		int one = Integer.parseInt(str);
		int two = Integer.valueOf(str); ////处理这个字符串时没有区别
		int one_1 = Integer.parseInt(str+""); /////  本身已经是sring类型,再加""也是string,且null的ascii为0,不起作用
		int two_1 = Integer.valueOf(str+"");
		// static Integer valueOf(int i)
		// 返回一个表示指定的 int 值的 Integer 实例。

		// static Integer valueOf(String s)
		// 返回保存指定的 String 的值的 Integer 对象。
		for (int i = 0; i < str.length(); i++) {
			System.out.println(Integer.valueOf(str.charAt(i) + ""));
			System.out.println(Integer.valueOf(str.charAt(i)));

		}

		int three = Integer.valueOf(str.charAt(0) + "");// /1
		int four = Integer.valueOf(str.charAt(0));// /49
		System.out.println(one);
		System.out.println(two);
		System.out.println(one_1);
		System.out.println(two_1);
		System.out.println(three);
		System.out.println(four);
	}
}
//1
//49
//1
//49
//1
//49
//111
//111
//111
//111
//1
//49

		int p = Integer.valueOf(2);
		System.out.println(p); ///2
		
		int q = Integer.valueOf(2+"");
		System.out.println(q); ///2
		
		int k = Integer.valueOf('2');  ///char -> int ,向上转型,按照Ascii输出,
		System.out.println(k); ////50  
		
		int r = Integer.valueOf('2'+"");
		System.out.println(r); ////2  
		
		int m = Integer.valueOf('2'-'0');
		System.out.println(m);///2 
		
		int n = Integer.valueOf("1"); ////String原样输出
		System.out.print(n);////1

设有下面两个赋值语句:
a = Integer.parseInt(“123”);
b = Integer.valueOf(“123”).intValue();
下述说法正确的是(  d  )。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。  
D、a和b都是整数类型变量并且值相等。

详细解析:
parseInt(String s )方法是类Integer的静态方法,它的作用就是将形参 s 转化为整数,比如:
Interger.parseInt("1")=1;
Integer.parseInt("20")=20;
Integer.parseInt("324")=324;
当然,s 表示的整数必须合法,不然是会抛异常的。

 int intValue()
          以 int 类型返回该 Integer 的值。
valueOf(String s )也是Integer类的静态方法,它的作用是将形参 s 转化为Integer对象,Integer对象就是基本数据类型int型包装类,就是将int包装成一个类,这样在很多场合下是必须的。 Interger.valueOf("123")=Integer(123)这时候Integer(123)就是整数123的对象表示形式,它再调用intValue()方法,就是将123的对象表示形式转化为int基本数据123,所以,选择D


你可能感兴趣的:(java,二进制,valueof,paesrInt)