| 发表于:2007-01-21 23:04:3724楼 得分:25 |
public static string printintegerinhex(int num){ final char[] chars = new char[]{ '0 ', '1 ', '2 ', '3 ', '4 ', '5 ', '6 ', '7 ', '8 ', '9 ', 'a ', 'b ', 'c ', 'd ', 'e ', 'f '}; string result = " "; // 如果是负数则要转换成正数 if(num < 0){ result += "- "; num = 0 - num; } int filter = 15; // 15的最低四位都是1,呵呵,正好用! for(int i = 1; i <= 8; ++i){ // 把要转换的那四位移到最低四位处,并&之! int b = (num < < (i * 4)) & filter; // 分别用了三种方法来转换! switch(i){ // 方法一 case 1 : if(b <=9) result += (char)( '0 ' + b); else result += 'a ' + (b - 10); break; // 方法二 case 2 : result += chars[b]; break; // 方法三 default : result += character.fordigit(b, 16); } } // 因为character.fordigit()方法会返回小写字母,所以touppercase一下! return result.touppercase(); } | | |
|