mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Clarify typecasting
This commit is contained in:
parent
f125b2813e
commit
9ace0ca310
@ -661,13 +661,18 @@ Explicit Conversions
|
|||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
If the compiler does not allow implicit conversion but you know what you are
|
If the compiler does not allow implicit conversion but you know what you are
|
||||||
doing, an explicit type conversion is sometimes possible::
|
doing, an explicit type conversion is sometimes possible. Note that this may
|
||||||
|
give you some unexpected behaviour so be sure to test to ensure that the
|
||||||
|
result is what you want! Take the following example where you are converting
|
||||||
|
a negative ``int8`` to a ``uint``:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
int8 y = -3;
|
int8 y = -3;
|
||||||
uint x = uint(y);
|
uint x = uint(y);
|
||||||
|
|
||||||
At the end of this code snippet, ``x`` will have the value ``0xfffff..fd`` (64 hex
|
At the end of this code snippet, ``x`` will have the value ``0xfffff..fd`` (64 hex
|
||||||
characters), which is -3 in two's complement representation of 256 bits.
|
characters), which is -3 in the two's complement representation of 256 bits.
|
||||||
|
|
||||||
If a type is explicitly converted to a smaller type, higher-order bits are
|
If a type is explicitly converted to a smaller type, higher-order bits are
|
||||||
cut off::
|
cut off::
|
||||||
|
Loading…
Reference in New Issue
Block a user