public class TenToTwo{
public void fangFa(int a){
String zYuShu =""; //最后全部余数
int sun=a/2;//求第一次除2的商
int yuShu=a%2;
//下面这句是什么意思,String类型能和int类型互相赋值吗?好象不行吧?
//他在yuShu后写了个 +"" 这就行了,这是什么道理?
zYuShu=yuShu+"";
while(sun>0){
yuShu =sun%2;
sun=sun/2;
//下面这句话也让我不理解
//为什么第二次、第三次循环的时候zYuShu的值不会被覆盖,
//而好象是把第一次循环和第二次循环的结果排列起来了?
zYuShu=yuShu+zYuShu;
}
System.out.println(zYuShu);
}
public static void main(String[]args){
TenToTwo t =new TenToTwo();
t.fangFa(165);
}
}
{
StringBuffer strBuf=new StringBuffer();
if(a>=0)
{
while(a/2!=0)
{
strBuf.append(a%2);
a=a/2;
}
strBuf.append(a);
}
return strBuf.reverse().toString();
}
zYuShu=yuShu+"";
这是转型,把int转成string//下面这句话也让我不理解
//为什么第二次、第三次循环的时候zYuShu的值不会被覆盖,
//而好象是把第一次循环和第二次循环的结果排列起来了?
zYuShu=yuShu+zYuShu;
string形的变量连加是在原来的基础上继续加上别的内容,
如String a="" ; a=a+"11"; 则a="11"
这句的意思是把yushu变成String 类型的,然后赋值给zYuShu
不是有现成的...
Integer.toBinaryString(int)
private static int fangfa(int i) {
char[] buf = new char[32];
char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z' };
int charPos = 32;
int radix = 1 << 1;
int mask = radix - 1;
do {
buf[--charPos] = digits[i & mask];
i >>>= 1;
} while (i != 0); return Integer.parseInt(new String(buf, charPos, (32 - charPos)));
}