Nathan Heimdall

Greenhorn

Posts: 20

posted 8 years ago

Hello all ,

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.

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."

posted 8 years ago

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).

K. Tsang OCPJP7 OCMJEA6

Piet Verdriet

Ranch Hand

Posts: 266

posted 8 years ago

How are you storing these numbers? As Strings?

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).

Heimdall Ksu wrote:Hello all ,

I have two arbitrary length binary numbers.

ex : 100011111 & 1111001110001

Is it possible to compare them using only there 0s & 1s representations.

How are you storing these numbers? As Strings?

Heimdall Ksu wrote:i.e I don't want to convert them to base 10 & compare them...

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).

Nathan Heimdall

Greenhorn

Posts: 20

posted 8 years ago

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.

Thanks guys,

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

Thanks guys,

-Nathan

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