Syntactic Confectionery Delight PerlMonks

Re: Multiply Hex values

by Laurent_R (Canon)
 on Feb 09, 2017 at 14:53 UTC ( #1181532=note: print w/replies, xml ) Need Help??

in reply to Multiply Hex values

There is a wrong understanding in your post.

Numbers exist independently of their (hexadecimal, decimal or other) representations.

From Perldoc: hex interprets EXPR as a hex string and returns the corresponding value.

The hex function converts a string into a number, it does not convert an hex number into a decimal number (even though if you print the output of hex, it will be printed as a decimal number, this does not imply that they're stored as decimal numbers, as this is irrelevant, they are stored as numbers).

Now, if you want to multiply numbers, they have some how to be numbers. So you need to convert your strings into numbers (not decimal or hexadecimal numbers), or at least something that Perl understands as numbers. So converting your hexadecimal strings to numbers is the right way to do it. And, once you've done that, you can multiply your numbers, and then print out the resulting number value in any representation you wish, including hexadecimal representation or any other one.

Replies are listed 'Best First'.
Re^2: Multiply Hex values
by Anonymous Monk on Feb 09, 2017 at 16:13 UTC

First, that's exactly the right answer.

To quibble a little bit, computers don't manipulate numbers in the abstract, they store them in binary. (You can just say "internal representation" if you want to pretend that anyone is using a non-binary computer.)

Now I'm just getting silly. You could, technically, write code to multiply numbers by directly working on their (decimal or hex) string representations, using the grade school long-form method. It would be a million times slower, because you're emulating something the computer can do in one instruction, but you could do it.

So, once again, listen to Laurent. Put the numbers in a form the computer can work with easily, let it do its magic, then convert them back to the form you want to look at.

Re^2: Multiply Hex values
by BillKSmith (Prior) on Feb 09, 2017 at 22:23 UTC
This is a very common misunderstanding. Common English usage does not distinguish between 'number' (the abstract concept) and 'numeral' (a representation of a number). In the rare cases where it makes a difference, we often get confused. Your use of 'value' solves the problem nicely.
Bill

Create A New User
Node Status?
node history
Node Type: note [id://1181532]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
As of 2021-05-09 17:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Perl 7 will be out ...

Results (101 votes). Check out past polls.

Notices?