I have an assignment due in soon and I really dunno where to start with this. I think the modulus function may be the key. Any tips?
Develop a JAVA program which reads a decimal integer value and calculates and prints it octal equivalent.
Printable View
I have an assignment due in soon and I really dunno where to start with this. I think the modulus function may be the key. Any tips?
Develop a JAVA program which reads a decimal integer value and calculates and prints it octal equivalent.
Ah right. I had to do a similar thing when I was working in Sony of the summer, to come up with a solution to randomly making the most different colours possible for bars on a web bar chart. This was a very difficult task and it meant making a Hex class and then using it in a file to randomly create colours. Also meant that I had to study a colour chart for a few hours to come up with a solution!
I'll just E-mail my mates there and ask if they can send it to me and I'll post it here and hopefully it will help you. If not then I suppose I'll have to re-write it for you :)
Would be much appreciated. :)
Here it is:
If you can't translate that into working with octal then let me know and I'll help you. I've got coursewok for Thursday, though, so I'll be pretty busy till then!Code:
/**
*
Title: Hex Class</p>
*
Description: A class to allow the user to input a hex string or decimal colour to be stored, manipulated and output
* as hex</p>
* @author Stephen Pickett
* @version 1.0
*/
public class Hex {
private int store[] = new int [3];
private final String [] hex = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
/**
*
* @param red an integer representation of the amount of red required (min = 0, max = 255)
* @param green an integer representation of the amount of green required (min = 0, max = 255)
* @param blue an integer representation of the amount of blue required (min = 0, max = 255)
*/
public Hex(int red, int green, int blue) {
store[0] = red;
store[1] = green;
store[2] = blue;
}
/**
*
* @param red a string representation of the amount of red required (min = 00, max = FF)
* @param green a string representation of the amount of green required (min = 00, max = FF)
* @param blue a string representation of the amount of blue required (min = 00, max = FF)
*/
public Hex(String red, String green, String blue) {
for (int count = 0; count <= 2; count++) {
String number = "";
switch (count) {
case 0: number = red; break;
case 1: number = green; break;
case 2: number = blue; break;
}
Character temp;
Character temp1;
if (number.length() == 2) {
temp = new Character(number.charAt(0));
temp1 = new Character(number.charAt(1));
} else {
temp = new Character((char) 0);
temp1 = new Character(number.charAt(0));
}
store[count] = ((convert(temp)*16) + (convert(temp1)*1));
}
}
/**
*
* @return returns the hex number as a string
*/
public String toString() {
String temp = new String();
for (int i = 0; i <= 2; i++) {
int num = (int) Math.ceil(store[i]/16);
temp += hex[num];
num = (int) Math.ceil(store[i]%16);
temp += hex[num];
}
return temp;
}
/**
*
* @param number the number (as a Character) to be converted to decimal (int) from hex (String)
* @return the decimal form of the hex
*/
private int convert(Character number) {
if (Character.isDigit(number.charValue())){
return (int) Integer.parseInt(number.toString());
} else {
String temp = Character.toString(Character.toUpperCase(number.charValue()));
if (temp.equals("A")) {
return 10;
} else if (temp.equals("B")) {
return 11;
} else if (temp.equals("C")) {
return 12;
} else if (temp.equals("D")) {
return 13;
} else if (temp.equals("E")) {
return 14;
} else if (temp.equals("F")) {
return 15;
} else {
return 0;
}
}
}
/**
*
* @param colour colour to be incremented (0 = red, 1 = green, 2 = blue)
* @param inc amount by which to increment the colour
*/
public void increment (int colour, int inc) {
if ((store[colour] + inc) < 255) {
store[colour] += inc;
} else {
store[colour] = 255;
}
}
/**
*
* @param colour colour to be decremented (0 = red, 1 = green, 2 = blue)
* @param inc amount by which to decrement the colour
*/
public void decrement (int colour, int dec) {
if ((store[colour] - dec) > 0) {
store[colour] -= dec;
} else {
store[colour] = 0;
}
}
/**
*
* @param red an integer representation of the amount of red required (min = 0, max = 255)
* @param green an integer representation of the amount of green required (min = 0, max = 255)
* @param blue an integer representation of the amount of blue required (min = 0, max = 255)
*/
public void set(int red, int green, int blue) {
store[0] = red;
store[1] = green;
store[2] = blue;
}
/**
*
* @param red a string representation of the amount of red required (min = 00, max = FF)
* @param green a string representation of the amount of green required (min = 00, max = FF)
* @param blue a string representation of the amount of blue required (min = 00, max = FF)
*/
public void set(String red, String green, String blue) {
for (int count = 0; count <= 2; count++) {
String number = "";
switch (count) {
case 0: number = red; break;
case 1: number = green; break;
case 2: number = blue; break;
}
Character temp;
Character temp1;
if (number.length() == 2) {
temp = new Character(number.charAt(0));
temp1 = new Character(number.charAt(1));
} else {
temp = new Character((char) 0);
temp1 = new Character(number.charAt(0));
}
store[count] = ((convert(temp)*16) + (convert(temp1)*1));
}
}
}
Good luck :)