in conv/int.go [61:101]
func i16Dig(n int16, buf *[6]byte) []byte {
var neg bool
var u uint16
if n > 0 {
if n < 10 {
return digits1[n]
} else if n < 100 {
return digits2[n]
}
u = uint16(n)
} else {
neg = true
u = uint16(n)
u = -u
}
pos := 6
for u >= 100 {
pos -= 2
is := u % 100
u /= 100
buf[pos+1], buf[pos] = digits2[is][1], digits2[is][0]
}
if u < 10 {
pos--
buf[pos] = digits[u]
} else {
pos -= 2
buf[pos+1], buf[pos] = digits2[u][1], digits2[u][0]
}
if neg {
pos--
buf[pos] = '-'
}
return buf[pos:]
}