# how to validate range of hex,binary,octal or decimal numbers?

Hi everybody!
I am needing to validate the numbers entered by the user. The user enters number in either of the four formats namely hex,binary,octal or decimal. I need to validate the numbers such that if the user enters a hex number other than 0 to 7FFFFFFF my if statement should be able to validate that and prompt the user again to enter the number in range. In the same way if a binary number is entered other than
0 to 1111111111111111111111111111111(31 1's) or an octal number other than 0 to 17777777777, again my if statement or any other mechanism should be able to validate and output a warning message about out of range number and prompt the user to enter that number in question again. I just can't start thinking in some direction...please help.
vashudev chandra

• See methods like [b]Integer.parseInt(String val, int radix)[/b] and [b]Integer.toString(int val, int radix)[/b].

---------------------------------
[size=1](Its just my sig)

• Hi!
Thanks for yoru previous reply but it is not the problem in converting the number. I need to know the mechanism of compare. Say a user enters 177777 in hex format...now i need to make sure that the hex number entered is in the range 0 to 17777777777(10 7's) and I also need to make sure that the number is not a negative or >17777777777.
Converting from one format to another is not a problem at all for me.
I am reading the input by user in something like this str.readLine();
Now I want to pass the str to a function which will basically validate if a particular number format is in particular range and specification or not.
Thanks again!
Vahudev

See methods like [b]Integer.parseInt(String val, int radix)[/b] and [b]Integer.toString(int val, int radix)[/b].
:
: ---------------------------------
: [size=1](Its just my sig)
:
:

• : Hi!
: Thanks for yoru previous reply but it is not the problem in converting the number. I need to know the mechanism of compare. Say a user enters 177777 in hex format...now i need to make sure that the hex number entered is in the range 0 to 17777777777(10 7's) and I also need to make sure that the number is not a negative or >17777777777.
: Converting from one format to another is not a problem at all for me.
: I am reading the input by user in something like this str.readLine();
: Now I want to pass the str to a function which will basically validate if a particular number format is in particular range and specification or not.
: Thanks again!
: Vahudev

Use the functions I mentioned to convert to a numeric format (int or long). Then compare that number to your range. This is much simpler than attempting to do it using chars.

[code]
String value = "1F";

final long min = 0x0;
final long max = 0xFF;

long n = Long.parseLong(value, 16);

boolean ok = (n >= min) && (n <= max);
System.out.println(ok);
[/code]

---------------------------------
[size=1](Its just my sig)

• Hello there!
Thanks a lot for your help. The last reply by you was very very helpful...I don't know how many hours I would have lost by trying to look that up myself...it works. EUREKA! I am new at java and I have strong feelings for it. This is my life, my future. So please keep your helping hand extended to me. I appreciate everybody at Programmers Heaven.com. I will be posting more questions and please keep replying as you always do.
Thanks
Vasudev

: : Hi!
: : Thanks for yoru previous reply but it is not the problem in converting the number. I need to know the mechanism of compare. Say a user enters 177777 in hex format...now i need to make sure that the hex number entered is in the range 0 to 17777777777(10 7's) and I also need to make sure that the number is not a negative or >17777777777.
: : Converting from one format to another is not a problem at all for me.
: : I am reading the input by user in something like this str.readLine();
: : Now I want to pass the str to a function which will basically validate if a particular number format is in particular range and specification or not.
: : Thanks again!
: : Vahudev
:
: Use the functions I mentioned to convert to a numeric format (int or long). Then compare that number to your range. This is much simpler than attempting to do it using chars.
:
: [code]
: String value = "1F";
:
: final long min = 0x0;
: final long max = 0xFF;
:
: long n = Long.parseLong(value, 16);
:
: boolean ok = (n >= min) && (n <= max);
: System.out.println(ok);
: [/code]
:
: ---------------------------------
: [size=1](Its just my sig)