进制转化之%求

class BinaryTest 
{
	public static void main(String[] args) 
	{
//		System.out.println("Hello World!");
//		toBin(6);
		toHex(29);
	}

	/*
	十进制-->二进制
	*/
	public static void toBin(int num)
	{
		StringBuffer sb = new StringBuffer();

		while(num>0)
		{
//			System.out.print(num%2);
			sb.append(num%2);
			num = num / 2;

		}
		System.out.println(sb.reverse());
	}
	/*
	十进制-->十六进制。
	通过查表法。来完成。因为四个1最大是15,最小是0,这些数字都在十六进制的元素当中。
	*/

	public static void toHex(int num)
	{
		 char[] chs = {'0','1','2','3',
					 '4','5','6','7',
					 '8','9','A','B',
					 'C','D','E','F'};
		StringBuffer sb = new StringBuffer();
		for(int x=0; x<8; x++)
		{
			int temp = num & 15;

			sb.append(chs[temp]);

			num = num >>> 4;
		}
		System.out.println(sb.reverse());

	}

	public static void toHex2(int num)
	{
		StringBuffer sb = new StringBuffer();
		for(int x=0; x<8; x++)
		{
			int temp = num & 15;//获取num的最低四位。
			if(temp>9)
//				System.out.print((char)(temp-10+'A'));
				sb.append((char)(temp-10+'A'));
			else
//				System.out.print(temp);
				sb.append(temp);
			
			num = num >>> 4;//继续获取下一个四位。
		}
		System.out.println(sb.reverse());
	}


}
/*

 000000000000 00000000 00000000 01101101
&00000000 00000000 00000000 00001111
--------------------------------------
 00000000 00000000 00000000 00001101= 13-10 +'A' =   D   0 1 2 3 4 5 6 7 8 9 A b c d e F

 */
 

你可能感兴趣的:(java)