|
查看: 1290|回复: 1
|
各位会Java的大大。。可以帮我看下这题目吗>.<
[复制链接]
|
|
|
发表于 8-5-2009 12:03 PM
|
显示全部楼层
public class BaseConvert {
// converts integer n into a base b string
static String toString(int n, int base) {
// special case
if (n == 0) return "0";
String digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String s = "";
while (n > 0) {
int d = n % base;
s = digits.charAt(d) + s;
n = n / base;
}
return s;
}
static String toBinaryString(int n) { return toString(n, 2); }
static String toHexString(int n) { return toString(n, 16); }
static void inputError(String s) {
throw new RuntimeException("Input error with" + s);
}
// convert a String representing a base b integer into an int
static int fromString(String s, int b) {
int result = 0;
int digit = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= '0' && c <= '9')
digit = c - '0';
else if (c >= 'A' && c <= 'Z')
digit = 10 + c - 'A';
else inputError(s);
if (digit < b) result = b * result + digit;
else inputError(s);
}
return result;
}
static int fromBinaryString(String s) { return fromString(s, 2); }
static int fromHexString(String s) { return fromString(s, 16); }
// sample test client
public static void main(String[] args) {
int n = 47;
String s = "101111";
System.out.println(n + ": " + toBinaryString(n));
System.out.println(s + ": " + fromBinaryString(s));
System.out.println(n + ": " + toHexString(n));
System.out.println();
n = 2620;
s = "0A3C";
System.out.println(n + ": " + toBinaryString(n));
System.out.println(s + ": " + fromHexString(s));
System.out.println(n + ": " + toHexString(n));
}
}
可以做参考 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|