mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
41 lines
1.2 KiB
Solidity
41 lines
1.2 KiB
Solidity
function half(int value) pure suffix returns (int) { return value / 2; }
|
|
function half128(uint128 value) pure suffix returns (uint128) { return value / 2; }
|
|
function half64s(int64 value) pure suffix returns (int64) { return value / 2; }
|
|
|
|
contract C {
|
|
function zero() public pure returns (int) {
|
|
return 0 half + int128(0 half128) + 0 half64s;
|
|
}
|
|
|
|
function two() public pure returns (int) {
|
|
return 2 half + int128(2 half128) + 2 half64s;
|
|
}
|
|
|
|
function negative() public pure returns (int) {
|
|
return
|
|
-2 half +
|
|
-int128(2 half128) +
|
|
-2 half64s;
|
|
}
|
|
|
|
function max() public pure returns (int) {
|
|
return
|
|
0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff half +
|
|
int128(0xffffffffffffffffffffffffffffffff half128) +
|
|
0x7fffffffffffffff half64s;
|
|
}
|
|
|
|
function withDecimals() public pure returns (int) {
|
|
return
|
|
2.0 half +
|
|
int128(0.0004e5 half128) +
|
|
80000e-2 half64s;
|
|
}
|
|
}
|
|
// ----
|
|
// zero() -> 0
|
|
// two() -> 3
|
|
// negative() -> -3
|
|
// max() -> 0x4000000000000000000000000000000080000000000000003ffffffffffffffd
|
|
// withDecimals() -> 421
|