mirror of
https://github.com/golang/go
synced 2024-11-19 23:44:43 -07:00
strconv.Uitob64: allow conversion of 64-bit binaries (buffer was too small).
panic if base is invalid. R=rsc CC=golang-dev https://golang.org/cl/1702050
This commit is contained in:
parent
38f1231f3e
commit
dc6a95e979
@ -6,12 +6,15 @@ package strconv
|
||||
|
||||
// Uitob64 returns the string representation of i in the given base.
|
||||
func Uitob64(u uint64, base uint) string {
|
||||
if base < 2 || 36 < base {
|
||||
panic("invalid base " + Uitoa(base))
|
||||
}
|
||||
if u == 0 {
|
||||
return "0"
|
||||
}
|
||||
|
||||
// Assemble decimal in reverse order.
|
||||
var buf [32]byte
|
||||
var buf [64]byte
|
||||
j := len(buf)
|
||||
b := uint64(base)
|
||||
for u > 0 {
|
||||
|
@ -50,6 +50,7 @@ var itob64tests = []itob64Test{
|
||||
itob64Test{16, 16, "10"},
|
||||
itob64Test{-0x123456789abcdef, 16, "-123456789abcdef"},
|
||||
itob64Test{1<<63 - 1, 16, "7fffffffffffffff"},
|
||||
itob64Test{1<<63 - 1, 2, "111111111111111111111111111111111111111111111111111111111111111"},
|
||||
|
||||
itob64Test{16, 17, "g"},
|
||||
itob64Test{25, 25, "10"},
|
||||
@ -135,6 +136,7 @@ var uitob64tests = []uitob64Test{
|
||||
uitob64Test{1<<63 + 1, 10, "9223372036854775809"},
|
||||
uitob64Test{1<<64 - 2, 10, "18446744073709551614"},
|
||||
uitob64Test{1<<64 - 1, 10, "18446744073709551615"},
|
||||
uitob64Test{1<<64 - 1, 2, "1111111111111111111111111111111111111111111111111111111111111111"},
|
||||
}
|
||||
|
||||
func TestUitoa(t *testing.T) {
|
||||
|
Loading…
Reference in New Issue
Block a user