本帖最后由 千殇一梦 于 2015-3-4 17:01 编辑
看到毕老师关于查表法这一块,把进制转换封装成方法。我代码都和毕老师一样,为什么输出的结果是错的。
把6转换成二进制。我这段代码输出了111 正确的是110.大家帮忙看看。我实在是看不出来了。
- class ConvertBest
- {
- public static void trans(int num,int base,int offset)
- {
- if(num==0)
- return;
- char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
- char[] arr=new char[32];
- int pos=arr.length;
- while(num!=0)
- {
- int temp=num&base;
- arr[--pos]=chs[temp];
- num=num>>>offset;
- }
- for(int x=pos;x<arr.length;x++)
- {
- System.out.print(arr[pos]);
- }
- }
- //转二进制
- public static void toBin(int num)
- {
- trans(num,1,1);
- }
- //转十六进制
- public static void toHex(int num)
- {
- trans(num,15,4);
- }
- public static void main(String[] args)
- {
- toBin(6);
复制代码
晕,最后面有2个}}没显示出来。那个33是60转16进制的
|