posted 17 years ago
A) To convert a number 10 to octal (07)
1. Divide the number by 8 you will get 1 and reminder is 2
10/8=1 , 10%8=2
2. Just combine 1 and 2 that is 12
B) To convert a number 20 to hexadecimal(1F)
Apply same steps as used for octal conversion(Step 1 and 2 above)
20/16=1 , 20%16=4
So Hex representation of 20 is 14.
C) To convert oct to dec
1*8^1 + 2*8^0=10
D) To covert hex to dec
1*16^1 + 4*16^0=20
[This message has been edited by sdev (edited August 15, 2000).]
1. Divide the number by 8 you will get 1 and reminder is 2
10/8=1 , 10%8=2
2. Just combine 1 and 2 that is 12
B) To convert a number 20 to hexadecimal(1F)
Apply same steps as used for octal conversion(Step 1 and 2 above)
20/16=1 , 20%16=4
So Hex representation of 20 is 14.
C) To convert oct to dec
1*8^1 + 2*8^0=10
D) To covert hex to dec
1*16^1 + 4*16^0=20
[This message has been edited by sdev (edited August 15, 2000).]
"SCJP5  SCWCD5 DEVELOPER"
Brian Smith
Ranch Hand
Posts: 232
sasank manohar
Ranch Hand
Posts: 186
posted 17 years ago
As you may know
>>  signed right shift(divide by 2)
>>>  unsigned right shift
<<  signed left shift(multiply by 2)<br /> <br /> >>  This operator shifts the bits to the right 1 by 1 and
Shifted off bits are lost(discarded) and 0 is brought
into the left(higher order bit).
For a negative number the sign remains and 1 is brought
into the left.
Note: Shifting 1 to the right always results in 1
<<  This operator shifts the bits to the left 1 by 1 and<br /> higher order bit which is shifted out is lost(discarded)<br /> and a 0 is brought into the right<br /> <br /> >>>  This operator shifts the bits to the right 1 by 1 and
higher order bit which is shifted out is lost and a 0
bit is brought into the right (for both +ve and ve nos.)
Note: This operator always returns +ve value for ve
values also
This is a brief explanation. If you really want to understand these operators , then you need to work out applying these operators for different type of values
If you have any doubts on a particular topic then you go to search in this top of the forum and type the related topic , you will get lot of answers that were discussed in this forum(just a suggestion).
thanks..
[This message has been edited by sdev (edited August 15, 2000).]
>>  signed right shift(divide by 2)
>>>  unsigned right shift
<<  signed left shift(multiply by 2)<br /> <br /> >>  This operator shifts the bits to the right 1 by 1 and
Shifted off bits are lost(discarded) and 0 is brought
into the left(higher order bit).
For a negative number the sign remains and 1 is brought
into the left.
Note: Shifting 1 to the right always results in 1
<<  This operator shifts the bits to the left 1 by 1 and<br /> higher order bit which is shifted out is lost(discarded)<br /> and a 0 is brought into the right<br /> <br /> >>>  This operator shifts the bits to the right 1 by 1 and
higher order bit which is shifted out is lost and a 0
bit is brought into the right (for both +ve and ve nos.)
Note: This operator always returns +ve value for ve
values also
This is a brief explanation. If you really want to understand these operators , then you need to work out applying these operators for different type of values
If you have any doubts on a particular topic then you go to search in this top of the forum and type the related topic , you will get lot of answers that were discussed in this forum(just a suggestion).
thanks..
[This message has been edited by sdev (edited August 15, 2000).]
"SCJP5  SCWCD5 DEVELOPER"
posted 17 years ago
The method sdev outlined works for decimal values below 80 but for values above that it there is a little bit more to do.
Consider what the numbers represent. For example:
1) The octal (base 8) number 02134 in base 10 is:
(0* (8^4) + (2*(8^3)) + (1*(8^2)) + (3*(8^1) ) + (4*(8^0)) = 1116
2) So to convert the base 10 number 1116 to octal, reverse the process:
a) 1116/(8^4) < 1 so 0 with 1116 remainder
b) 1116/(8^3) = 2 with (1116  1024) = 92 remainder
c) 92/(8^2) = 1 with (92  64) = 28 remainder
d) 28/(8^1) = 3 with (28  24) = 4 remainder
e) 4/(8^0) = 4
Putting the values in their position, you get: 02134
Same logic applies for hex (base 16) and binary (base 2) numbers.
Consider what the numbers represent. For example:
1) The octal (base 8) number 02134 in base 10 is:
(0* (8^4) + (2*(8^3)) + (1*(8^2)) + (3*(8^1) ) + (4*(8^0)) = 1116
2) So to convert the base 10 number 1116 to octal, reverse the process:
a) 1116/(8^4) < 1 so 0 with 1116 remainder
b) 1116/(8^3) = 2 with (1116  1024) = 92 remainder
c) 92/(8^2) = 1 with (92  64) = 28 remainder
d) 28/(8^1) = 3 with (28  24) = 4 remainder
e) 4/(8^0) = 4
Putting the values in their position, you get: 02134
Same logic applies for hex (base 16) and binary (base 2) numbers.
You're not going crazy. You're going sane in a crazy word. Find comfort in this tiny ad:
Rocket Oven Kickstarter  from the trailboss
https://coderanch.com/t/695773/RocketOvenKickstartertrailboss
