Convert string to integer (binary)

I have a 4 byte string which I would like to convert to a integer. I'm reading the data from a file and the file contains 4 bytes for the ID number. So I've extracted the 4 bytes as text into a variable, but I want to print it's value as an integer.

And I don't only want to print it, I'd like to actually have a variable which contains the data as an integer, so that I can work with it.

Thanks!
LVL 2
dankennedyAsked:
Who is Participating?
 
shivsaCommented:
try pack and unpack functions of perl.
0
 
shivsaCommented:
like u have a string called '123' and 123 number.

$string=sprintf"%03d",123;
$integer=0+$string;
0
 
shivsaCommented:
like u have $string called '1234'. u want it to convert $int which is a int.

then

$int = 0+ $string
print "$int \n";
and now u can work with this variable $int which is an integer.
0
 
dankennedyAuthor Commented:
No...

I'm reading 4 bytes from a file.

Binary: 00000000 00000000 00000000 01000000

So when I read it into Perl, it's represented as a string...

String: '\0\0\0@'

But I want it to be represented as an integer..

Integer: 64

So I need code that will take a 4 byte string and give me it's integer value...
0
 
dankennedyAuthor Commented:
Thanks.

Here's how it works for anyone else who's wondering...

use the function unpack.

$myint = unpack("N",$mystring);

or for little endian...

$myint = unpack("V",$mystring);
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.