Re: Implied cast differs from explicit cast [message #176681 is a reply to message #176673] |
Tue, 17 January 2012 05:59 |
Arno Welzel
Messages: 317 Registered: October 2011
Karma:
|
Senior Member |
|
|
Jerry Stuckle, 2012-01-16 14:45:
> On 1/16/2012 8:28 AM, The Natural Philosopher wrote:
>> lb wrote:
>>> jstucklex(at)attglobal(dot)net wrote:
>>>> ...
>>>> No, it is not. '0x12' is a hex number, not an integer. (int)'0x12'
>>>> converts this correctly to 0.
>>
>> Looks like Jerry doesn't know what an integer is either.
>>
>> A hex number of course *is* an integer, unless its a hex representation
>> of floating point.
>>
>> Killfile the prat like I have.
>>
>>
>
> 0x12 is not an integer. It is a hexadecimal value.
No, 0x12 (and *not* "0x12") is the hexadecimal *representation* of the
value 18. There is no thing like "hexadecimal value" and "0x12" is a
*string* and not a number at all.
In fact PHP only knows to types of numbers: integers and floating point.
There is no "hexadecimal" data type.
> It can have the same bit pattern as an integer - but it can also have
> the same bit pattern as a character (Ctrl-R, to be exact).
Which also applies to the value 18 - this can also be the value of a
character.
Example:
<?php
$a = 0x12;
print $a;
?>
Result:
Value of $a: 18, type of $a: integer
So you see 0x12 *is* an integer.
Of course "0x12" (including the quotes) is a string and *converting* the
string to a number may need attention to the representation of the
number within the string.
--
Arno Welzel
http://arnowelzel.de
http://de-rec-fahrrad.de
|
|
|