【java day4】 数组 Array,最大/小值,进制转换

1、一维数组  输出

/*
	输出数组
*/

class  ArrayDemo1
{
	public static void main(String[] args) 
	{
		//int [] arr = new int[5];
		int [] arr={1,2,3,4,5,6};
		System.out.println(arr[1]);
		System.out.println("arr["+0+"]="+arr[0]+";"); //arr[0]=1;
		
		//遍历
		/*
		int sum=0;
		for (int x=0;x<arr.length ;x++ )
		{
			sum+=arr[x];
			System.out.println("arr["+x+"]="+arr[x]+";");
		}
		*/
		//print elements
		printArray(arr);
	}
	public static void printArray(int[] arr)
		{
			System.out.print("[ ");
			for(int x=0;x<arr.length;x++)
			{
				if(x!=arr.length-1)
					System.out.print(arr[x]+",");
				else
					System.out.print(arr[x]+"]");
			}
		}
}



2、二维数组求和

/*
	数组求和
*/

class Array2Demo 
{
	public static void main(String[] args) 
	{
		//int[] arr=new int[3]; //一维数组
		//int[][] arr = new int[2][3]; //二维数组,2行3列
		
		//System.out.println(arr[0][1]);

		/*
		int[][] arr=new int[3][];
		arr[0]= new int[3];
		arr[1]=new int[1];
		arr[2]=new int[2];
		System.out.println(arr.length);
		System.out.println(arr[0].length);
		*/
		int[][] arr = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
		
		int sum=0;
		for (int x=0;x<arr.length ;x++ )
		{
			for (int y=0;y<arr.length ;y++ )
			{
				sum =sum+arr[x][y];
			}
		}
		System.out.println("sum="+sum);
	}
}


3、获取最大值最小值、重载

/*
	get the max,min of a array.
*/

class  ArrayTest
{
	public static void main(String[] args) 
	{
		int [] arr={1,3,2,5,9};
		double[] dou={1.2,3.4,1.5};

		double d_max=getMax(dou);
		System.out.println("d_max="+d_max);
		
		//overload
		int max = getMax(arr);
		System.out.println("max="+max);

		getMin(arr);
		boolean[] ar =new boolean[2];
		System.out.println("arr[0]="+arr[0]);
	}

	//function
	public static int getMax(int [] arr)
	{
		int max = arr[0];

		for (int x=0;x<arr.length ;x++ )
		{
			if(arr[x]>max)
				max = arr[x];
		}
		return max;
	}

	//功能一致时,可用重载 overload
		public static double getMax(double [] arr)
	{
		double max = arr[0];

		for (int x=0;x<arr.length ;x++ )
		{
			if(arr[x]>max)
				max = arr[x];
		}
		return max;
	}


	//min
	public static void  getMin(int [] arr)
	{
		int min =0;
		for(int x=1;x<arr.length;x++)
		{
			if (arr[x]<arr[min])
			min =x;		
		}
		System.out.println("min="+arr[min]);
	}
}


4、进制转换

(1)

class  ArrayTest2
{
	public static void main(String[] args) 
	{
		//toBin(6);
		toHex(60);//3c
	}

	//十进制-->二进制
	public static void toBin(int num)
	{
		StringBuffer sb = new StringBuffer();
		while(num>0)
		{
			sb.append(num%2);
			num = num/2;
		}
		System.out.println(sb);
		System.out.println(sb.reverse());
	}

	/*
	十进制-->十六进制
	*/
	public static void toHex(int num)
	{
		StringBuffer sb = new StringBuffer();
		for (int x=0;x<8 ;x++ )
		{
			int temp = num&15;
			if (temp>9)
				//System.out.println(char(temp-9+'A'));
				sb.append((char)(temp-10+'A'));
			else
				//System.out.println(temp);
				sb.append(temp);
			num = num >>> 4;
		}
		System.out.println(sb.reverse());
	}
}

(2)

class ArrayTest3 
{
	public static void main(String[] args) 
	{
		toHex(60);	
	}
	
	/*
	查表法 十进制-->十六进制	
	去反,可用StringBuffer 容器的reverse
	*/
	public static void toHex(int num)
	{
		char[] chs={'0','1','2','3','4','5',
			'6','7','8','9',
			'A','B','C','D','E','F'};

		//定义临时容器
		char[] arr=new char[8]; // '\u0000' 表示空位
		
		/*
		次法正负均无限制
		*/

		int pos = arr.length;
		while (num!=0)
		{
		
		//for (int x=0;x<8 ;x++ )  //8个固定四位,若只移动有效位,可节约时间
			
			int temp =num&15;
			//System.out.println(chs[temp]);
			
			arr[--pos] = chs[temp];

			num = num >>>4;
		}
		
		//存储数据的arr数组遍历
		for (int x=pos;x<arr.length;x++ ) // 从有效位开始取出数据
		{
			System.out.print(arr[x]+",");//3C
		}
	}


}

(3)升级版

class  ArrayTest4
{
	public static void main(String[] args) 
	{
		//toBin(6);
		toHex(60);
		//toBa(-60);
	}
	

	/*
	十进制-->二进制
	*/
	public static void toBin(int num)
	{
		trans(num,1,1);
	}
	/*
	十进制-->十六进制
	*/
	public static void toHex(int num)
	{
		trans(num,15,4);
	}
	/*
	十进制-->八进制
	*/
	public static void toBa(int num)
	{
		trans(num,7,3);
	}

	public static void trans(int num,int base,int offset)
	{
		if(num==0)
		{	System.out.println(0);
			return;
		}
		char[] chs={'0','1','2','3','4','5',
			'6','7','8','9',
			'A','B','C','D','E','F'};
		//定义一个容器
		char arr[]=new char[32];
		
		int pos =arr.length;

		while(num!=0)
		{
			int temp = num & base;
			arr[--pos] = chs[temp];
			num = num>>>offset;
		}
		for (int x=pos;x<arr.length ;x++ )
		{
			System.out.print(arr[x]);
		}
	}
}


5、

6、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值