Solved

HEX number conversion?

Posted on 1998-05-20
8
638 Views
Last Modified: 2011-10-03
I am trying to convert a scalar variable into a HEX number without success. For example:
$num = 254.6; #Some number
$num = sprintf("%.0f",$num); #Round off the number
... # Now how do I get $num == "FF" ?

Thanks in advance - Eric
0
Comment
Question by:Erick37
  • 5
  • 3
8 Comments
 
LVL 84

Expert Comment

by:ozo
ID: 1206277
$num=sprintf'%X',$num;
0
 
LVL 32

Author Comment

by:Erick37
ID: 1206278
Ok, well now I feel dumb... If you want the points, ozo, post it as a proposed answer.
0
 
LVL 32

Author Comment

by:Erick37
ID: 1206279
Another HEX question:
How do you test raw binary data read from a file without resorting to crytic characters as in the example below?  I would like my code more readable and not have to look up the character codes for the HEX numbers.

#Look for Graphic Control Extension 0x21
if ($temp =~ /^!/) {
    ...
    read(FILE, $temp, 1);  #See what kind of extension it is.
    if ($temp =~ /^ù/) {  #Graphic Control label 0xFE
        ...
    }
    ...
}
0
 
LVL 84

Expert Comment

by:ozo
ID: 1206280
if( $temp =~ /^\x21/ ){
  ...
  if( substr($temp,0,1) eq "\xFE"  ){ #but isn't 'ù' eq "\xF9"  and 'þ' eq "\fe" ?
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 32

Author Comment

by:Erick37
ID: 1206281
Thanks again ozo... geez my books are bad!
And you are right 0xFE is 'þ', the error was in my comment, I was testing for 0xF9 (now you can see why I need to use the hex value directly!)

Cheers.
0
 
LVL 32

Author Comment

by:Erick37
ID: 1206282
OK - here's another one: (I'm tryin' hard to give away these points)
I plugged in the code you suggested:
$num=sprintf'%X',$num; #convert a number to hex
and it works fine except I need a byte returned, when $num is less than 16.5 I get "F" when I want "0F"

Other than testing for this condition in an 'if' block, can sprintf return formatted hex numbers of a specific length?
Suppose I want "000F" for example.
0
 
LVL 84

Accepted Solution

by:
ozo earned 100 total points
ID: 1206283
Even if your books are bad you should have
perldoc perlfunc
and
perldoc perlre
etc. installed with your perl

$num=sprintf'%04X',$num;
#another method:
$num = uc unpack'H2',pack'C',sprintf"%.f",$num;
$num = uc unpack'H4',pack'n',sprintf"%.f",$num;


0
 
LVL 32

Author Comment

by:Erick37
ID: 1206284
Thanks ozo:
Both methods you provided work perfectly.

Now it's time to browse the perldocs I guess.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Email validation in proper way is  very important validation required in any web pages. This code is self explainable except that Regular Expression which I used for pattern matching. I originally published as a thread on my website : http://www…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

864 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

25 Experts available now in Live!

Get 1:1 Help Now