Converting Number to Base 8

Hey, so now im having trouble with the second part of my assignment, converting a number to Base 8. I already wrote a program that converts the number to binary.

My Professors asking me to produce a string of the Base 8 equivalent of the original number and assign it to the instance variable of octal number.

I can't figure out how to convert a number into an Octal without doing

Code:

`String octalStr = Integer.toOctalString(numVal)`

My teacher wants us to actually convert it.

Also how do i assign the original number to the instance variable of the octal number

Thanks

Re: Converting Number to Base 8

How would you do this on paper, without a computer?

Re: Converting Number to Base 8

Quote:

wrote a program that converts the number to binary.

Generalize that program by changing the 2 to a variable and then call it with an 8 to get an octal String.

Re: Converting Number to Base 8

Aite thanks man. One last question. So i have this code

Code:

`public boolean checkOctal(String octalStr, int numVal)`

{

int p = 1;

int octalCheck = 0;

for(int a = 64; a>=1 && p <= 3; a /= 8)

{

if (octalStr.charAt(p) > 0)

{

octalCheck += (a * (octalStr.charAt(p)));

}

p++;

}

if (octalCheck == numVal)

{

return true;

}

else

{

return false;

}

i can't figure out how to get this line to work

octalCheck += (a * (octalStr.charAt(p)));

When i try converting it to an int, It doesn't equal the value at the position on the string. But if i leave it as it is, it doesn't add up correctly

Thanks

Re: Converting Number to Base 8

Quote:

i can't figure out how to get this line to work

octalCheck += (a * (octalStr.charAt(p)));

Please explain what that line is supposed to do?

To see what the code is doing, break it up into simple, single statements and print out the results after each statement.

Quote:

When i try converting it to an int, It doesn't equal the value at the position on the string. But if i leave it as it is, it doesn't add up correctly

Add some printlns that show what the code is doing. Copy the output and add comments to it describing what you want it to do.

Re: Converting Number to Base 8

ok so octalStr is the base8 number, limited to 4 digits. I want it to multiple the second number by 64, third by 8, and fourth by 1 and add it all up.

Re: Converting Number to Base 8

What is printed out when you separate the statement into parts and print out everything for each statement?

Re: Converting Number to Base 8

when i print (octalStr.charAt(p)), it'll show the right number.

For example the base 8 of 34 is 0042. When i print Code:

(octalStr.charAt(1))

it'll print 0. which is correct

But when i do: Code:

` octalCheck += (a * octalStr.charAt(1) );`

it'll print 3072

Re: Converting Number to Base 8

Re: Converting Number to Base 8

Your approach is way off.

Look at the conversion using base 10 since it will be easier to see:

Find the value for "123"

Set the intVal to 0

Get the next digit: 1

To add this value the current value in intVal you need to shift the intVal left 1 position (mult by 10)

then add in the digit

continue loop to the end of the string.

As you get each digit, that means the the current number must be shifted left 1 digit (mult by 10)

The result in base 10 display would be 123. 3 positions, 1 shifted left 2 positions, the 2 shifted one position, the 3 no shift