public class Zhuanhuan1
{
public static void zhuanhuan1(int num)
{
char[]arr1={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr=new char[8];
int top=arr.length; while(num!=0)
{
int temp=num&15;
arr[--top]=arr1[temp];
num=num>>>4;
}
for(int x=top;x<arr.length;x++)
{
System.out.print(arr[x]);
}
}
public static void main(String args[])
{
zhuanhuan1(60);
}
}加红色的这两个地方,如果同时改为int top=arr.length-1和arr[top--],那它为什么会将第一次执行的结果储存在arr[6]中,而不是arr[7]呢?
不是说:top--是先取值再自减吗?那么top=arr.length-1,arr[top--]=arr1[temp],如果按先取值在自减的,那么应该是arr1[temp]储存到arr[7]里面吧?
求高手解答,看看我这样想是那里出问题了,
感谢
{
public static void zhuanhuan1(int num)
{
char[]arr1={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr=new char[8];
int top=arr.length; while(num!=0)
{
int temp=num&15;
arr[--top]=arr1[temp];
num=num>>>4;
}
for(int x=top;x<arr.length;x++)
{
System.out.print(arr[x]);
}
}
public static void main(String args[])
{
zhuanhuan1(60);
}
}加红色的这两个地方,如果同时改为int top=arr.length-1和arr[top--],那它为什么会将第一次执行的结果储存在arr[6]中,而不是arr[7]呢?
不是说:top--是先取值再自减吗?那么top=arr.length-1,arr[top--]=arr1[temp],如果按先取值在自减的,那么应该是arr1[temp]储存到arr[7]里面吧?
求高手解答,看看我这样想是那里出问题了,
感谢
那么第一次取值应该是arr[7],--放在右边是先取值再减一
执行的打印结果是
arr[5] =
arr[6] = 3
arr[7] = C
那么第一次取值是存储在了arr[7]中,你的问题在哪里呢?
int i=5;int a=i-- ; //a=5 赋值后再减
int [] arr={1,2,3,4};
int i=1;
int a=arr[++i];
int b=arr[i++];
System.out.println(a); //3
System.out.println(b); //3