If it help, this is how I do it (normally I would use a calculator!)
To convert from hexadecimal to decimal:
Forget the powers of two calculation, just think of the rightmost bit as being equal to one.
As you move to the left, each column of the binary number becomes twice the value of the previous one.
So written as columns, the digit values are ...... 128, 64, 32, 16, 8, 4, 2 and finally 1. This is exactly what your [ y x 2^x] calculation produces each time.
I'm going to write this vertically so the forum doesn't reformat the columns:
6FF in binary is 0110 1111 1111
0 x 2048 = 0
1 x 1024 = 1024
1 x 512 = 512
0 x 256 = 0
1 x 128 = 128
1 x 64 = 64
1 x 32 = 32
1 x 16 = 16
1 x 8 = 8
1 x 4 = 4
1 x 2 = 2
1 x 1 = 1
So the total in decimal is 1791.
Doing it the other way around, start by writing a number line, begin with the largest power of two that is less than your original number. You will quickly learn your powers of two tables!
As an example using 1234:
This is less than 2048 but more than 1024, so you need to start the line with 2048 and half each number as you move to the right until you reach '1'.
Write a '1' under the highest number that is less or equal to your decimal number. Subtract the number on your line from the original number. So place a '1' under 1024 and subtract 1024 from 1234, the result is 210.
The next number after 1024 is 512 which is higher than 210 so write a zero, the next again is 256, this is also higher than 210 so write another zero. the next number is 128, this is less than 210 so write a '1' and subtract 128, the result is 210 - 128 = 82. Keep moving alone the line, either wring zero or writing one and subtracting until you reach the end. You should get the number 0100 1101 0010 in binary which converts to 4D2 in hexadecimal
After a while you get to do this in your head, binary and hexadecimal are no more a problem than decimal when you get used to them.
Brian.