code: func bigEndianByteAt(bigint *big.Int, n int) byte {
  	words := bigint.Bits()
  	// Check word-bucket the byte will reside in
  	i := n / wordBytes
  	if i >= len(words) {
  		return byte(0)
  	}
  	word := words[i]
  	// Offset of the byte
  	shift := 8 * uint(n%wordBytes)
  
  	return byte(word >> shift)
  }
docs: // bigEndianByteAt returns the byte at position n,
  // in Big-Endian encoding
  // So n==0 returns the least significant byte