func i64Dig()

in conv/int.go [145:185]


func i64Dig(n int64, buf *[20]byte) []byte {
	var neg bool
	var u uint64
	if n > 0 {
		if n < 10 {
			return digits1[n]
		} else if n < 100 {
			return digits2[n]
		}
		u = uint64(n)
	} else {
		neg = true
		u = uint64(n)
		u = -u
	}

	pos := 20
	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:]
}