黑马程序员技术交流社区

标题: 进制转换方法定义临时容器的类型问题? [打印本页]

作者: 悟佛修道    时间: 2013-5-16 23:07
标题: 进制转换方法定义临时容器的类型问题?
本帖最后由 悟佛修道 于 2013-5-18 16:31 编辑

public static void toBin(int num)
        {
                //定义二进制的表。
                char[] chs = {'0','1'};

                //定义一个临时存储容器。
                char[] arr = new char[32];

                //定义一个操作数组的指针
                int pos = arr.length;
为什么写进制转换方法时,一到定义一个临时存储容器,毕老师就用char类型数组?可以用int类型数组吗?
毕老师一直定义char类型数组是有什么其他的好处吗?
作者: 神之梦    时间: 2013-5-16 23:25
定义一个临时存储容器是为了存放转换后的值,就如两变量值互换时,使用第三方变量的想法一样。
使用char类型是因为如果是转换为十六进制的话,还要存A-F这些字符,如果不是转换为十六进制,用int类型数组也可以

作者: slatop@qq.com    时间: 2013-5-17 02:09
神之梦 发表于 2013-5-16 23:25
定义一个临时存储容器是为了存放转换后的值,就如两变量值互换时,使用第三方变量的想法一样。
使用char类 ...

使用char类型是因为如果是转换为十六进制的话  这句是正解。不过如果定为二进制最好选择用boolean。类型的提用一般看两个方面。
1.够不够满足你的要求。
2.满足1的情况下选择占用内存最小的类型
作者: 黑马-许鹏    时间: 2013-5-17 02:49
数组arr其实里面装的是0,1这样的字符,楼上说的没错,用boolean型的可以节约空间,不过节约这样一点点空间没有什么意义,用int型的当然也可以,不过最后总是要转换成char的字符打印出来的,所以用char型的数组是最方便的,不知道这样说你能理解不?
作者: 神之梦    时间: 2013-5-17 10:24
本帖最后由 神之梦 于 2013-5-17 10:49 编辑
slatop@qq.com 发表于 2013-5-17 02:09
使用char类型是因为如果是转换为十六进制的话  这句是正解。不过如果定为二进制最好选择用boolean。类型 ...

认真考虑下@slatop@qq.com 说的,产生了一点疑惑,请教一下:
1、boolean类型在内存中占几个字节?(这个真不知道,好像视频中没讲过)
2、boolean类型的数组传入的值不是应该为boolean类型的数据,即true或false吗?为什么这里可以且最好用boolean???
作者: 悟佛修道    时间: 2013-5-18 16:31
谢谢你们,终于明白了。




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