Working on E1.java Note that I will not necessarily attempt to fix all errors at once. Instead, I will work on groups of errors at each step, gradually whittling down the list. This is generally a good strategy given that some errors might be really caused by other errors: get rid of one error and others *might* disappear. I am using the Build Output tab at bottom of JCreator to get more useful debugging info, i.e., a pointer into the line where the compiler thinks the problem is. ------------------ Error: V:\java-problems\solutions\E1.java:21: illegal start of expression Value= digit* 2**exponent; ^ Cause: use of ** for exponentation. Explanation: the compiler thought that the two *s were meant to be two separate multiplies. Fix: changed to Math.pow( 2, exponent ). ======================================================= Error: cannot resolve symbol variable (multiple errors on lines 16,18,21,22). Choosing one: V:\java-problems\solutions\E1.java:16: cannot resolve symbol symbol : variable exponet location: class BinaryToDecimal exponet = 0;\ ^ Cause: must declare the type of a variable before you use it. Explanation: compiler was looking for something like "int exponent;" before this line. Fix: add the type declarations for exponent, sum, value, digit. Renamed Value to value, digit to binary_digit, exponet to exponent. ======================================================= Error: V:\java-problems\solutions\E1.java:17: cannot resolve symbol symbol : method getnextdigit () location: class BinaryToDecimal getnextdigit(); ^ This error appears on line 23 as well. Cause: typo in method name: should be getNextDigit. Explanation: case matters! Fix: change to correct name. ======================================================= Error: V:\java-problems\solutions\E1.java:21: possible loss of precision found : double required: int int value= binary_digit* Math.pow( 2, exponent); ^ Cause: int * double gives you a double. Then tried to pour the double into an int. Explanation: need to cast to get compiler to accept this line. Fix: cast results of Math.pow to int. Then have int * int and no problem. ======================================================= Error: none at this point: compiles fine. However, does not produce correct output. From this point, you are stuck with what are called "logic" errors, i.e., errors in your algorithm. The major problem is that getNextDigit is called too many times. It should be used *once* in the loop. Instead, it is used twice in the loop, and once before the loop. The other problem is that there is no output of the sum. This should be placed after the loop has finished.