diff --git a/src/math/big/floatconv.go b/src/math/big/floatconv.go
index 04f9a4e..a857fa65 100644
--- a/src/math/big/floatconv.go
+++ b/src/math/big/floatconv.go
@@ -46,11 +46,12 @@
 //	digits   = digit { digit } .
 //	digit    = "0" ... "9" | "a" ... "z" | "A" ... "Z" .
 //
-// The base argument must be 0 or a value between 2 through MaxBase.
+// The base argument must be 0, 2, 10, or 16. Providing an invalid base
+// argument will lead to a run-time panic.
 //
 // For base 0, the number prefix determines the actual base: A prefix of
 // ``0x'' or ``0X'' selects base 16, and a ``0b'' or ``0B'' prefix selects
-// base 2; otherwise, the actual base is 10 and no prefix is permitted.
+// base 2; otherwise, the actual base is 10 and no prefix is accepted.
 // The octal prefix ``0'' is not supported.
 //
 // A "p" exponent indicates power of 2 for the exponent; for instance "1.2p3"
@@ -75,7 +76,7 @@
 	// exponent
 	var exp int64
 	var ebase int
-	exp, ebase, err = scanExponent(r)
+	exp, ebase, err = scanExponent(r, true)
 	if err != nil {
 		return
 	}
diff --git a/src/math/big/ratconv.go b/src/math/big/ratconv.go
index da4915e..778077b 100644
--- a/src/math/big/ratconv.go
+++ b/src/math/big/ratconv.go
@@ -78,9 +78,8 @@
 
 	// exponent
 	var exp int64
-	var ebase int
-	exp, ebase, err = scanExponent(r)
-	if ebase == 2 || err != nil {
+	exp, _, err = scanExponent(r, false)
+	if err != nil {
 		return nil, false
 	}
 
@@ -115,7 +114,17 @@
 	return z, true
 }
 
-func scanExponent(r io.ByteScanner) (exp int64, base int, err error) {
+// scanExponent scans the longest possible prefix of r representing a decimal
+// ('e', 'E') or binary ('p') exponent, if any. It returns the exponent, the
+// exponent base (10 or 2), or a read or syntax error, if any.
+//
+//	exponent = ( "E" | "e" | "p" ) [ sign ] digits .
+//	sign     = "+" | "-" .
+//	digits   = digit { digit } .
+//	digit    = "0" ... "9" .
+//
+// A binary exponent is only permitted if binExpOk is set.
+func scanExponent(r io.ByteScanner, binExpOk bool) (exp int64, base int, err error) {
 	base = 10
 
 	var ch byte
@@ -130,7 +139,11 @@
 	case 'e', 'E':
 		// ok
 	case 'p':
-		base = 2
+		if binExpOk {
+			base = 2
+			break // ok
+		}
+		fallthrough // binary exponent not permitted
 	default:
 		r.UnreadByte()
 		return // no exponent; same as e0
