Big Moose Saloon
 Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies Register / Login

# To solve Don's example

Prashant Neginahal
Ranch Hand

Joined: Dec 04, 2002
Posts: 76
Hi All,

Please help me how to solve this question.I have difficulty in converting hex form to decimal and then do shift opeartion.Is it not time consuming.?
----------
Prashant
[ Jess added UBB [code] tags to preserve whitespace, check 'em out! ]
[ January 08, 2003: Message edited by: Jessica Sant ]

--------------<br />Prashant<br />SCJP-91%
Jose Botella
Ranch Hand

Joined: Jul 03, 2001
Posts: 2120
There is no need to convert between hex to decimal, because the shift operations should be performed in a number system in which the bits are visualized, that is hex or binary. The variable to shift is already hex.
int i1 = 0xffffffff;
int i2 = i1 << 1;
ffff fffe
int i3 = i1 >> 1;
ffff ffff
int i4 = i1 >>> 1;
7fff ffff
Please read Cat and Mouse games with bits to understand the bit operators in Java.
This is from the Java Tutorial Shift and logical operators
Also make sure to learn about hexadecimal, binary and octal number system. They are a bit basic thing for this forum.

Jessica Sant
Sheriff

Joined: Oct 17, 2001
Posts: 4313

Originally posted by Prashant Neginahal:
Please help me how to solve this question.I have difficulty in converting hex form to decimal and then do shift opeartion.Is it not time consuming.?

Actually -- don't you need to go from hex to binary? shift it -- then back to hex?
Converting Hex to Binary is actually quite easy -- each hex digit goes to a 4 digit binary number:
i1 = 0xffffffff =
1111 1111 1111 1111 1111 1111 1111 1111
i2 = i1 << 1;
1111 1111 1111 1111 1111 1111 1111 1110
= 0xfffffffe
i3 = i1 >> 1;
1111 1111 1111 1111 1111 1111 1111 1111
= 0xffffffff
i4 = i1 >>> 1;
0111 1111 1111 1111 1111 1111 1111 1111
= 0x7fffffff
Dan Chisholm
Ranch Hand

Joined: Jul 02, 2002
Posts: 1865
Thank you Jose and Jessica.
Prashant, I used Hex in that question because any other number system would have made the question more difficult. Hexadecimal was developed to make it easier to move data in and out of computers. Learning to use hexadecimal certainly makes a programers life easier.
Hex is a programmers best friend.

Dan Chisholm<br />SCJP 1.4<br /> <br /><a href="http://www.danchisholm.net/" target="_blank" rel="nofollow">Try my mock exam.</a>

I agree. Here's the link: http://aspose.com/file-tools

subject: To solve Don's example