diff options
author | Denton Liu <liu.denton+github@gmail.com> | 2016-08-26 02:19:35 +0800 |
---|---|---|
committer | Denton Liu <liu.denton+github@gmail.com> | 2016-08-27 05:13:45 +0800 |
commit | 9ace0ca310b4ed21090d06ad621f5b9c80f8a272 (patch) | |
tree | afebe4916198da05bb10d89d1fa5a5439e93c9a7 | |
parent | f125b2813e88fbe45a27b086f654880195534f18 (diff) | |
download | dexon-solidity-9ace0ca310b4ed21090d06ad621f5b9c80f8a272.tar.gz dexon-solidity-9ace0ca310b4ed21090d06ad621f5b9c80f8a272.tar.zst dexon-solidity-9ace0ca310b4ed21090d06ad621f5b9c80f8a272.zip |
Clarify typecasting
-rw-r--r-- | docs/types.rst | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/docs/types.rst b/docs/types.rst index d6445ed9..737fbe7d 100644 --- a/docs/types.rst +++ b/docs/types.rst @@ -661,13 +661,18 @@ Explicit Conversions -------------------- 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; uint x = uint(y); 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 cut off:: |