Initial project import
This commit is contained in:
commit
23f2d29e32
11957 files changed
+1754577
No files matched your search
@@ -0,0 +1,67 @@
|
||||
module strconv
|
||||
|
||||
const base_digits = '0123456789abcdefghijklmnopqrstuvwxyz'
|
||||
|
||||
// format_int returns the string representation of the number n in base `radix`
|
||||
// for digit values > 10, this function uses the small latin leters a-z.
|
||||
@[direct_array_access; manualfree]
|
||||
pub fn format_int(n i64, radix int) string {
|
||||
unsafe {
|
||||
if radix < 2 || radix > 36 {
|
||||
panic_n('invalid radix, it should be => 2 and <= 36, actual:', radix)
|
||||
}
|
||||
if n == 0 {
|
||||
return '0'
|
||||
}
|
||||
mut n_copy := n
|
||||
mut have_minus := false
|
||||
if n < 0 {
|
||||
have_minus = true
|
||||
n_copy = -n_copy
|
||||
}
|
||||
mut res := ''
|
||||
for n_copy != 0 {
|
||||
tmp_0 := res
|
||||
bdx := int(n_copy % radix)
|
||||
tmp_1 := base_digits[bdx].ascii_str()
|
||||
res = tmp_1 + res
|
||||
tmp_0.free()
|
||||
tmp_1.free()
|
||||
// res = base_digits[n_copy % radix].ascii_str() + res
|
||||
n_copy /= radix
|
||||
}
|
||||
if have_minus {
|
||||
final_res := '-' + res
|
||||
res.free()
|
||||
return final_res
|
||||
}
|
||||
return res
|
||||
}
|
||||
}
|
||||
|
||||
// format_uint returns the string representation of the number n in base `radix`
|
||||
// for digit values > 10, this function uses the small latin leters a-z.
|
||||
@[direct_array_access; manualfree]
|
||||
pub fn format_uint(n u64, radix int) string {
|
||||
unsafe {
|
||||
if radix < 2 || radix > 36 {
|
||||
panic_n('invalid radix, it should be => 2 and <= 36, actual:', radix)
|
||||
}
|
||||
if n == 0 {
|
||||
return '0'
|
||||
}
|
||||
mut n_copy := n
|
||||
mut res := ''
|
||||
uradix := u64(radix)
|
||||
for n_copy != 0 {
|
||||
tmp_0 := res
|
||||
tmp_1 := base_digits[int(n_copy % uradix)].ascii_str()
|
||||
res = tmp_1 + res
|
||||
tmp_0.free()
|
||||
tmp_1.free()
|
||||
// res = base_digits[n_copy % uradix].ascii_str() + res
|
||||
n_copy /= uradix
|
||||
}
|
||||
return res
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user