黑马程序员技术交流社区

标题: 用查表法我也试着做一个十进制转成二进制,不知道错在哪 [打印本页]

作者: 路边小色狼    时间: 2013-8-30 22:34
标题: 用查表法我也试着做一个十进制转成二进制,不知道错在哪
本帖最后由 路边小色狼 于 2013-8-31 00:28 编辑

按老师讲的结果应该是000000000000110才对啊,可是我的运行结果是aaaaaaaaaaaaa110.按道理没赋值的元素应该是0啊。
对了好多遍了,没打错啊。耐心的朋友帮我看一下,谢谢

class Tobin
{
public static void main(String[] args)
{
  toBin(6);
}
public static void toBin(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&1所得值赋予arr数组的最后一位
  num=num>>>1;
}
  //打印出arr数组
  
  for(int x=0;x<arr.length;x++)  //故意定义x初始
     {
   
   System.out.print(arr[x]);
  }
}
}

作者: xiaoxu    时间: 2013-8-30 22:52
for(int x=0;x<arr.length;x++) 该为
for(int x=pos;x<arr.length;x++) 就可以了
作者: 路边小色狼    时间: 2013-8-30 23:00
xiaoxu 发表于 2013-8-30 22:52
for(int x=0;x

这样只是不打印出来而已,但前面的还元素还是a啊
作者: 月黑风高    时间: 2013-8-30 23:00
有图有真相,你代码木有问题,x不从pos开始,前面打印的也都是空格,不会是aaaaa



QQ拼音截图未命名.png (31.05 KB, 下载次数: 21)

结果木有问题

结果木有问题

作者: 路边小色狼    时间: 2013-8-30 23:06
月黑风高 发表于 2013-8-30 23:00
有图有真相,你代码木有问题,x不从pos开始,前面打印的也都是空格,不会是aaaaa

[attach]25510[/attach]有图有真相
作者: 路边小色狼    时间: 2013-8-30 23:07
月黑风高 发表于 2013-8-30 23:00
有图有真相,你代码木有问题,x不从pos开始,前面打印的也都是空格,不会是aaaaa


作者: 月黑风高    时间: 2013-8-30 23:20
路边小色狼 发表于 2013-8-30 23:07

你确定编译运行的是上面的类吗?tobin4类与tobin类???

作者: 路边小色狼    时间: 2013-8-30 23:23
月黑风高 发表于 2013-8-30 23:20
你确定编译运行的是上面的类吗?tobin4类与tobin类???

我复制过去运行的,估计是我的电脑挂了,你用就行,我就不行
作者: xiaoxu    时间: 2013-8-30 23:32
路边小色狼 发表于 2013-8-30 23:00
这样只是不打印出来而已,但前面的还元素还是a啊

这个方法本来就是想不打印前面的0,你如果非要打印的话,可以在
  while(num!=0)
{
  
  int temp=num&1;
  arr[--pos]=chs[temp];
  num=num>>>1;
}
把while循环条件改成循环32次,num!=0结束意味arr数组可能有很多都没有符初值,所以打印出aaa很正常

作者: 路边小色狼    时间: 2013-8-31 00:14
xiaoxu 发表于 2013-8-30 23:32
这个方法本来就是想不打印前面的0,你如果非要打印的话,可以在
  while(num!=0)
{

我知道了,你是对的
class test1
{
public static void main(String[] args)
{
  char[] arr=new char[10];
  System.out.println(arr[1]);
}
}


作者: 熊亮    时间: 2013-9-1 12:47
这是我用MyEclipse 7.0打印的结果
C:\Users\Administrator\Desktop\QQ图片20130901124305.jpg
应该是用的编程软件的原因吧
作者: 熊亮    时间: 2013-9-1 12:49
弱弱地问下怎么上图啊{:soso_e112:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2