黑马程序员技术交流社区
标题:
进制转换问题
[打印本页]
作者:
涐扪①起奮乧
时间:
2013-11-21 20:54
标题:
进制转换问题
本帖最后由 涐扪①起奮乧 于 2013-11-22 09:46 编辑
public static void toBin1(int num)
{
char[] chs = {'0','1'};
char[] arr = new char[32];
int pos = arr.length;
while(num!=0)
{
int temp = num & 1;
arr[--pos] = chs[temp];
num = num>>>1;
}
for (int x=pos; x<arr.length; x++)
{
System.out.print(arr[x]);
}
}
复制代码
请解释一下arr[--pos] = chs[temp];
--pos的意思是什么?详细点
作者:
摄影勾魂
时间:
2013-11-21 21:36
--操作数,表示先把操作数-1,再把操作数放到表示中运算。
在你的代码里,--pos就是先让pos=pos-1,再使用pos
作者:
习嘻嘻
时间:
2013-11-21 21:49
int 是32位的,
int temp = num & 1和 num = num>>>1;的循环就是从最后一位依次取出每一位二进制0,1直到num变为0;
然后--pos也就就是一个32位的数组的索引,arr[--pos]就存储着从位与功能取出来的0或1值
作者:
freehiker
时间:
2013-11-21 23:11
--pos是因为arr.length-1是最大的角标值,--pos就是先进行--运算并赋值给pos后再进行其他操作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2