Re: Implied cast differs from explicit cast [message #176682 is a reply to message #176681] |
Tue, 17 January 2012 06:00 |
Arno Welzel
Messages: 317 Registered: October 2011
Karma:
|
Senior Member |
|
|
Arno Welzel, 2012-01-17 06:59:
> 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
Sorry - the example was not complete:
<?php
$a = 0x12;
$a = intval($a, 16);
print 'Value of $a: ' . $a . ', type of $a: ' . gettype($a);
?>
--
Arno Welzel
http://arnowelzel.de
http://de-rec-fahrrad.de
|
|
|