This week's book giveaway is in the Java 8 forum. We're giving away four copies of Java 8 in Action and have Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft on-line! See this thread for details.

I have two arbitrary length binary numbers.
ex : 100011111 & 1111001110001
Is it possible to compare them using only there 0s & 1s representations.
i.e I don't want to convert them to base 10 & compare them (probably using BigInteger).

If its possible how can I implement it
Thanks.

-Nathan
"A single conversation with a wise man is better than ten years of study."

You don't have to convert to decimals. Every bit is 2^x so you at least need to find the bits that are 1 and calculate what x is for that bit. Without converting to decimal I think the faster way to get the most significant bit that is 1 of each number and compare that. Oh you do need to watch out for negatives (such as first bit is 1).

In Java, all numbers are in base 10. Yes, you can use octal or hexadecimal literals, but their value will still be stored as a decimal (base 10).

Didn't you mean that all numbers (ie: numeric primitives) are stored in binary and then by default formattted for output as decimal?

Nathan Heimdall
Greenhorn

Joined: Mar 02, 2009
Posts: 20

posted

0

Yes I am storing them as strings.
I padded them to equal length and then used the compare function in String class and got the result I was looking for.