Hex2Decimal.java
This is the syntax highlighted version of Hex2Decimal.java
from 3.1 Using Data Types of
Introduction to Computer Science by
Robert Sedgewick and Kevin Wayne.
/*************************************************************************
* Compilation: javac Hex2Decimal.java
* Execution: java Hex2Decimal x
*
* Convert x form hex to decimal.
*
* % java Hex2Decimal 1F
* 31
*
* % java Hex2Decimal FF
* 255
*
* % java Hex2Decimal DEAD
* 57005
*
*************************************************************************/
public class Hex2Decimal {
public static int hex2decimal(String s) {
String digits = "0123456789ABCDEF";
s = s.toUpperCase();
int val = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int d = digits.indexOf(c);
val = 16*val + d;
}
return val;
}
// precondition: d is a nonnegative integer
public static String decimal2hex(int d) {
String digits = "0123456789ABCDEF";
if (d == 0) return "0";
String hex = "";
while (d > 0) {
int digit = d % 16; // rightmost digit
hex = digits.charAt(digit) + hex; // string concatenation
d = d / 16;
}
return hex;
}
public static void main(String[] args) {
int decimal = hex2decimal(args[0]);
System.out.println(decimal);
String hex = decimal2hex(decimal);
System.out.println(hex);
}
}
Last updated: Fri Jun 11 16:58:23 EDT 2004
.
Copyright © 2004, Robert Sedgewick and Kevin Wayne.