diff options
author | Jo-Philipp Wich <jo@mein.io> | 2022-06-01 12:36:44 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2022-06-01 12:53:26 +0200 |
commit | d99604749d658f5f344d53e77dd52fbb0f6d176c (patch) | |
tree | 2e60555dc4ce9e81b42b7556dd2e2491473f776c /tests/custom/03_stdlib/08_int | |
parent | 9efbe183d7805eb60652a3745ec48cd32682ef8d (diff) |
syntax: adjust number literal parsing and string to number conversion
- Recognize new number literal prefixes `0o` and `0O` for octal as well
as `0b` and `0B` for binary number literals
- Treat number literals with leading zeros as octal while parsing but
as decimal ones on implicit number conversions, means `012` will yield
`10` while `+"012"` or `"012" + 0` will yield `12`
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'tests/custom/03_stdlib/08_int')
-rw-r--r-- | tests/custom/03_stdlib/08_int | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/tests/custom/03_stdlib/08_int b/tests/custom/03_stdlib/08_int index 12db299..eae4904 100644 --- a/tests/custom/03_stdlib/08_int +++ b/tests/custom/03_stdlib/08_int @@ -1,8 +1,9 @@ The `int()` function converts the given value into a signed integer -value and returns the resulting number. +value and returns the resulting number. In case the value is of type +string, a second optional base argument may be specified which is +passed to the underlying strtoll(3) implementation. Returns `NaN` if the given argument is not convertible into a number. - Returns `NaN` if the conversion result is out of range. -- Testcase -- @@ -19,7 +20,11 @@ Returns `NaN` if the conversion result is out of range. int("0xffffffffffffffff"), int("0177"), int("+145"), - int("-96") + int("-96"), + int("0177", 8), + int("0x1000", 16), + int("1111", 2), + int("0xffffffffffffffff", 16) ]); %} -- End -- @@ -37,6 +42,10 @@ Returns `NaN` if the conversion result is out of range. 0, 177, 145, - -96 + -96, + 127, + 4096, + 15, + "NaN" ] -- End -- |