A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄昆 中级黑马   /  2012-7-13 12:22  /  2267 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hkylp 于 2012-7-13 12:24 编辑

H:\资料\问题/*获取一个数的十六进制表现形式。
步骤:
1、定义一个方法用于获取一个数的十六进制表现形式
1、先将该数的二进制数与15的二进制数做&运算;获取最低四位
2、将该数的二进制字节码右移四位再与15的二进制数做&运算,再获取四位。
3、如果值大于9,则用该数减去10,把结果当做数组的角标指向数组
*/
package cn.itcast.day01;

public class JavaBaseGrammerTest01 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                String[] arr={"a","b","c","d","e","f"};
                getToHex(arr,60);
               
        }
        //定义一个方法用于获取一个数的十六进制的每一位数
        public static void getToHex(String[] arr,int numbers){
                while(numbers!=0){
                        int number=numbers&15;
                        numbers=numbers>>4;
                        getToHex(arr,numbers);//运用递归
                        if(number>9){
                                int x=number-10;
                                System.out.println(arr[x]);
                        }
                        else
                                System.out.println(number);
                                
                }
        }
}

为什么打印结果是:3c3?感觉没错呀,附上我的图解,问题出在哪里呀?

0629问题图.JPG (51.68 KB, 下载次数: 44)

0629问题图.JPG

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

7 个回复

倒序浏览
H:\资料\问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马